diff --git a/.github/workflows/run-unit-tests.yml b/.github/workflows/run-unit-tests.yml index 67f019292..fa910467b 100644 --- a/.github/workflows/run-unit-tests.yml +++ b/.github/workflows/run-unit-tests.yml @@ -413,6 +413,10 @@ jobs: python3 -B test/test_power_saving_deadlines.py -v python3 -B test/test_t096_regulator.py -v python3 -B test/test_nrf52_board_regulators.py -v + python3 -B test/test_nrf52_regulator.py -v + python3 -B test/test_radio_regulator_modes.py -v + python3 -B test/test_regulator_recovery.py -v + python3 -B test/test_regulator_settings.py -v python3 -B test/test_power_saving_diagnostics.py -v python3 -B test/test_power_saving_role_diagnostics.py -v python3 -B test/test_companion_power_diagnostics.py -v @@ -976,6 +980,7 @@ jobs: python3 -B test/test_bluetooth_mac_contract.py python3 -B test/test_companion_settings_persistence_contract.py python3 -B test/test_webconfig_ui.py + python3 -B test/test_webconfig_regulators.py -v python3 -B test/test_webconfig_gzip.py python3 -B test/test_webconfig_secret_masking.py python3 -B test/test_webconfig_station_ownership.py -v diff --git a/boards/nrf52840_s140_v6.ld b/boards/nrf52840_s140_v6.ld index d0c7d1dc8..0245836f5 100644 --- a/boards/nrf52840_s140_v6.ld +++ b/boards/nrf52840_s140_v6.ld @@ -1,49 +1,67 @@ -/* Linker script to configure memory regions. */ - -SEARCH_DIR(.) -GROUP(-lgcc -lc -lnosys) - -MEMORY -{ - FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0xED000 - 0x26000 - - /* To keep data in RAM across resets */ - PERSISTENT_RAM (rwx) : ORIGIN = 0x20006000, LENGTH = 8 - - /* SRAM required by Softdevice depend on - * - Attribute Table Size (Number of Services and Characteristics) - * - Vendor UUID count - * - Max ATT MTU - * - Concurrent connection peripheral + central + secure links - * - Event Len, HVN queue, Write CMD queue - */ - RAM (rwx) : ORIGIN = 0x20006000 + 8, LENGTH = 0x20040000 - 0x20006000 - 8 -} - -SECTIONS -{ - . = ALIGN(4); - .persistent (NOLOAD) : - { - KEEP(*(.persistent_magic)) - KEEP(*(.persistent_data)) - . = ALIGN(4); - } > PERSISTENT_RAM - - . = ALIGN(4); - .svc_data : - { - PROVIDE(__start_svc_data = .); - KEEP(*(.svc_data)) - PROVIDE(__stop_svc_data = .); - } > RAM - - .fs_data : - { - PROVIDE(__start_fs_data = .); - KEEP(*(.fs_data)) - PROVIDE(__stop_fs_data = .); - } > RAM -} - -INCLUDE "nrf52_common.ld" +/* Linker script to configure memory regions. */ + +SEARCH_DIR(.) +GROUP(-lgcc -lc -lnosys) + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0xED000 - 0x26000 + + /* To keep data in RAM across resets */ + PERSISTENT_RAM (rwx) : ORIGIN = 0x20006000, LENGTH = 8 + + /* Separate reset-retained state; clock and OTA handoff ABIs stay fixed. */ + REGULATOR_RECOVERY_RAM (rwx) : ORIGIN = 0x20006050, LENGTH = 64 + + /* SRAM required by Softdevice depend on + * - Attribute Table Size (Number of Services and Characteristics) + * - Vendor UUID count + * - Max ATT MTU + * - Concurrent connection peripheral + central + secure links + * - Event Len, HVN queue, Write CMD queue + */ + RAM (rwx) : ORIGIN = 0x20006090, LENGTH = 0x20040000 - 0x20006090 +} + +SECTIONS +{ + . = ALIGN(4); + .persistent (NOLOAD) : + { + KEEP(*(.persistent_magic)) + KEEP(*(.persistent_data)) + . = ALIGN(4); + } > PERSISTENT_RAM + + .regulator_recovery (NOLOAD) : + { + __regulator_recovery_start__ = .; + KEEP(*(.regulator_recovery)) + . = ORIGIN(REGULATOR_RECOVERY_RAM) + LENGTH(REGULATOR_RECOVERY_RAM); + __regulator_recovery_end__ = .; + } > REGULATOR_RECOVERY_RAM + + ASSERT(__regulator_recovery_start__ == 0x20006050, + "regulator recovery start must remain fixed") + ASSERT(__regulator_recovery_end__ == 0x20006090, + "regulator recovery reservation must remain exactly 64 bytes") + ASSERT(ORIGIN(RAM) == __regulator_recovery_end__, + "application RAM must start after regulator recovery") + + . = ALIGN(4); + .svc_data : + { + PROVIDE(__start_svc_data = .); + KEEP(*(.svc_data)) + PROVIDE(__stop_svc_data = .); + } > RAM + + .fs_data : + { + PROVIDE(__start_fs_data = .); + KEEP(*(.fs_data)) + PROVIDE(__stop_fs_data = .); + } > RAM +} + +INCLUDE "nrf52_common.ld" diff --git a/boards/nrf52840_s140_v6_extrafs.ld b/boards/nrf52840_s140_v6_extrafs.ld index abc0f18ac..99dbfb030 100644 --- a/boards/nrf52840_s140_v6_extrafs.ld +++ b/boards/nrf52840_s140_v6_extrafs.ld @@ -10,6 +10,9 @@ MEMORY /* To keep data in RAM across resets */ PERSISTENT_RAM (rwx) : ORIGIN = 0x20006000, LENGTH = 8 + /* Separate reset-retained state; clock and OTA handoff ABIs stay fixed. */ + REGULATOR_RECOVERY_RAM (rwx) : ORIGIN = 0x20006050, LENGTH = 64 + /* SRAM required by Softdevice depend on * - Attribute Table Size (Number of Services and Characteristics) * - Vendor UUID count @@ -17,7 +20,7 @@ MEMORY * - Concurrent connection peripheral + central + secure links * - Event Len, HVN queue, Write CMD queue */ - RAM (rwx) : ORIGIN = 0x20006000 + 8, LENGTH = 0x20040000 - 0x20006000 - 8 + RAM (rwx) : ORIGIN = 0x20006090, LENGTH = 0x20040000 - 0x20006090 } SECTIONS @@ -30,6 +33,21 @@ SECTIONS . = ALIGN(4); } > PERSISTENT_RAM + .regulator_recovery (NOLOAD) : + { + __regulator_recovery_start__ = .; + KEEP(*(.regulator_recovery)) + . = ORIGIN(REGULATOR_RECOVERY_RAM) + LENGTH(REGULATOR_RECOVERY_RAM); + __regulator_recovery_end__ = .; + } > REGULATOR_RECOVERY_RAM + + ASSERT(__regulator_recovery_start__ == 0x20006050, + "regulator recovery start must remain fixed") + ASSERT(__regulator_recovery_end__ == 0x20006090, + "regulator recovery reservation must remain exactly 64 bytes") + ASSERT(ORIGIN(RAM) == __regulator_recovery_end__, + "application RAM must start after regulator recovery") + . = ALIGN(4); .svc_data : { diff --git a/boards/nrf52840_s140_v6_mota64.ld b/boards/nrf52840_s140_v6_mota64.ld index 059940b14..32f1278ff 100644 --- a/boards/nrf52840_s140_v6_mota64.ld +++ b/boards/nrf52840_s140_v6_mota64.ld @@ -10,8 +10,11 @@ MEMORY /* 8-byte retained clock state followed by the 72-byte MOTAHYB1 record. */ PERSISTENT_RAM (rwx) : ORIGIN = 0x20006000, LENGTH = 80 + /* Separate reset-retained state; clock and OTA handoff ABIs stay fixed. */ + REGULATOR_RECOVERY_RAM (rwx) : ORIGIN = 0x20006050, LENGTH = 64 + /* Normal application data, heap, and stack end below the mOTA arena. */ - RAM (rwx) : ORIGIN = 0x20006000 + 80, LENGTH = 0x20030000 - 0x20006000 - 80 + RAM (rwx) : ORIGIN = 0x20006090, LENGTH = 0x20030000 - 0x20006090 /* Fixed staging arena retained across the software-reset bootloader handoff. */ MOTA_RAM (rwx) : ORIGIN = 0x20030000, LENGTH = 0x10000 @@ -27,6 +30,21 @@ SECTIONS . = ALIGN(4); } > PERSISTENT_RAM + .regulator_recovery (NOLOAD) : + { + __regulator_recovery_start__ = .; + KEEP(*(.regulator_recovery)) + . = ORIGIN(REGULATOR_RECOVERY_RAM) + LENGTH(REGULATOR_RECOVERY_RAM); + __regulator_recovery_end__ = .; + } > REGULATOR_RECOVERY_RAM + + ASSERT(__regulator_recovery_start__ == 0x20006050, + "regulator recovery start must remain fixed") + ASSERT(__regulator_recovery_end__ == 0x20006090, + "regulator recovery reservation must remain exactly 64 bytes") + ASSERT(ORIGIN(RAM) == __regulator_recovery_end__, + "application RAM must start after regulator recovery") + /* Export the direct-access handoff ABI even though no input section owns it. */ __mota_hybrid_handoff_start__ = ADDR(.persistent) + SIZEOF(.persistent); __mota_hybrid_handoff_end__ = ORIGIN(PERSISTENT_RAM) + LENGTH(PERSISTENT_RAM); @@ -43,8 +61,8 @@ SECTIONS "mOTA hybrid handoff end must remain fixed") ASSERT(__mota_hybrid_handoff_end__ - __mota_hybrid_handoff_start__ == 72, "mOTA hybrid handoff must remain exactly 72 bytes") - ASSERT(ORIGIN(RAM) == __mota_hybrid_handoff_end__, - "normal RAM must start immediately after the mOTA handoff") + ASSERT(ORIGIN(REGULATOR_RECOVERY_RAM) == __mota_hybrid_handoff_end__, + "regulator recovery must follow the mOTA handoff") ASSERT(ORIGIN(RAM) >= __mota_sd_auth_end__, "application RAM must not overlap SD OTA authorization") diff --git a/boards/nrf52840_s140_v6_sd_ota.ld b/boards/nrf52840_s140_v6_sd_ota.ld index d1f942451..6a038f0dc 100644 --- a/boards/nrf52840_s140_v6_sd_ota.ld +++ b/boards/nrf52840_s140_v6_sd_ota.ld @@ -10,8 +10,11 @@ MEMORY /* 8-byte retained clock state followed by the 72-byte MOTASDA2 authorization record. */ PERSISTENT_RAM (rwx) : ORIGIN = 0x20006000, LENGTH = 80 + /* Separate reset-retained state; clock and OTA handoff ABIs stay fixed. */ + REGULATOR_RECOVERY_RAM (rwx) : ORIGIN = 0x20006050, LENGTH = 64 + /* SRAM required by SoftDevice depends on configured BLE resources. */ - RAM (rwx) : ORIGIN = 0x20006000 + 80, LENGTH = 0x20040000 - 0x20006000 - 80 + RAM (rwx) : ORIGIN = 0x20006090, LENGTH = 0x20040000 - 0x20006090 } SECTIONS @@ -24,6 +27,21 @@ SECTIONS . = ALIGN(4); } > PERSISTENT_RAM + .regulator_recovery (NOLOAD) : + { + __regulator_recovery_start__ = .; + KEEP(*(.regulator_recovery)) + . = ORIGIN(REGULATOR_RECOVERY_RAM) + LENGTH(REGULATOR_RECOVERY_RAM); + __regulator_recovery_end__ = .; + } > REGULATOR_RECOVERY_RAM + + ASSERT(__regulator_recovery_start__ == 0x20006050, + "regulator recovery start must remain fixed") + ASSERT(__regulator_recovery_end__ == 0x20006090, + "regulator recovery reservation must remain exactly 64 bytes") + ASSERT(ORIGIN(RAM) == __regulator_recovery_end__, + "application RAM must start after regulator recovery") + __mota_sd_auth_start__ = ADDR(.persistent) + SIZEOF(.persistent); __mota_sd_auth_end__ = ORIGIN(PERSISTENT_RAM) + LENGTH(PERSISTENT_RAM); diff --git a/boards/nrf52840_s140_v7.ld b/boards/nrf52840_s140_v7.ld index 2333238f2..1960bc761 100644 --- a/boards/nrf52840_s140_v7.ld +++ b/boards/nrf52840_s140_v7.ld @@ -10,6 +10,9 @@ MEMORY /* To keep data in RAM across resets */ PERSISTENT_RAM (rwx) : ORIGIN = 0x20006000, LENGTH = 8 + /* Separate reset-retained state; clock and OTA handoff ABIs stay fixed. */ + REGULATOR_RECOVERY_RAM (rwx) : ORIGIN = 0x20006050, LENGTH = 64 + /* SRAM required by Softdevice depend on * - Attribute Table Size (Number of Services and Characteristics) * - Vendor UUID count @@ -17,7 +20,7 @@ MEMORY * - Concurrent connection peripheral + central + secure links * - Event Len, HVN queue, Write CMD queue */ - RAM (rwx) : ORIGIN = 0x20006000 + 8, LENGTH = 0x20040000 - 0x20006000 - 8 + RAM (rwx) : ORIGIN = 0x20006090, LENGTH = 0x20040000 - 0x20006090 } SECTIONS @@ -30,6 +33,21 @@ SECTIONS . = ALIGN(4); } > PERSISTENT_RAM + .regulator_recovery (NOLOAD) : + { + __regulator_recovery_start__ = .; + KEEP(*(.regulator_recovery)) + . = ORIGIN(REGULATOR_RECOVERY_RAM) + LENGTH(REGULATOR_RECOVERY_RAM); + __regulator_recovery_end__ = .; + } > REGULATOR_RECOVERY_RAM + + ASSERT(__regulator_recovery_start__ == 0x20006050, + "regulator recovery start must remain fixed") + ASSERT(__regulator_recovery_end__ == 0x20006090, + "regulator recovery reservation must remain exactly 64 bytes") + ASSERT(ORIGIN(RAM) == __regulator_recovery_end__, + "application RAM must start after regulator recovery") + . = ALIGN(4); .svc_data : { diff --git a/boards/nrf52840_s140_v7_extrafs.ld b/boards/nrf52840_s140_v7_extrafs.ld index ef6ebba15..7ca291ad1 100644 --- a/boards/nrf52840_s140_v7_extrafs.ld +++ b/boards/nrf52840_s140_v7_extrafs.ld @@ -10,6 +10,9 @@ MEMORY /* To keep data in RAM across resets */ PERSISTENT_RAM (rwx) : ORIGIN = 0x20006000, LENGTH = 8 + /* Separate reset-retained state; clock and OTA handoff ABIs stay fixed. */ + REGULATOR_RECOVERY_RAM (rwx) : ORIGIN = 0x20006050, LENGTH = 64 + /* SRAM required by Softdevice depend on * - Attribute Table Size (Number of Services and Characteristics) * - Vendor UUID count @@ -17,7 +20,7 @@ MEMORY * - Concurrent connection peripheral + central + secure links * - Event Len, HVN queue, Write CMD queue */ - RAM (rwx) : ORIGIN = 0x20006000 + 8, LENGTH = 0x20040000 - 0x20006000 - 8 + RAM (rwx) : ORIGIN = 0x20006090, LENGTH = 0x20040000 - 0x20006090 } SECTIONS @@ -30,6 +33,21 @@ SECTIONS . = ALIGN(4); } > PERSISTENT_RAM + .regulator_recovery (NOLOAD) : + { + __regulator_recovery_start__ = .; + KEEP(*(.regulator_recovery)) + . = ORIGIN(REGULATOR_RECOVERY_RAM) + LENGTH(REGULATOR_RECOVERY_RAM); + __regulator_recovery_end__ = .; + } > REGULATOR_RECOVERY_RAM + + ASSERT(__regulator_recovery_start__ == 0x20006050, + "regulator recovery start must remain fixed") + ASSERT(__regulator_recovery_end__ == 0x20006090, + "regulator recovery reservation must remain exactly 64 bytes") + ASSERT(ORIGIN(RAM) == __regulator_recovery_end__, + "application RAM must start after regulator recovery") + . = ALIGN(4); .svc_data : { diff --git a/boards/nrf52840_s140_v7_mota64.ld b/boards/nrf52840_s140_v7_mota64.ld index b7a88aae6..bb483b3ab 100644 --- a/boards/nrf52840_s140_v7_mota64.ld +++ b/boards/nrf52840_s140_v7_mota64.ld @@ -10,8 +10,11 @@ MEMORY /* 8-byte retained clock state followed by the 72-byte MOTAHYB1 record. */ PERSISTENT_RAM (rwx) : ORIGIN = 0x20006000, LENGTH = 80 + /* Separate reset-retained state; clock and OTA handoff ABIs stay fixed. */ + REGULATOR_RECOVERY_RAM (rwx) : ORIGIN = 0x20006050, LENGTH = 64 + /* Normal application data, heap, and stack end below the mOTA arena. */ - RAM (rwx) : ORIGIN = 0x20006000 + 80, LENGTH = 0x20030000 - 0x20006000 - 80 + RAM (rwx) : ORIGIN = 0x20006090, LENGTH = 0x20030000 - 0x20006090 /* Fixed staging arena retained across the software-reset bootloader handoff. */ MOTA_RAM (rwx) : ORIGIN = 0x20030000, LENGTH = 0x10000 @@ -27,6 +30,21 @@ SECTIONS . = ALIGN(4); } > PERSISTENT_RAM + .regulator_recovery (NOLOAD) : + { + __regulator_recovery_start__ = .; + KEEP(*(.regulator_recovery)) + . = ORIGIN(REGULATOR_RECOVERY_RAM) + LENGTH(REGULATOR_RECOVERY_RAM); + __regulator_recovery_end__ = .; + } > REGULATOR_RECOVERY_RAM + + ASSERT(__regulator_recovery_start__ == 0x20006050, + "regulator recovery start must remain fixed") + ASSERT(__regulator_recovery_end__ == 0x20006090, + "regulator recovery reservation must remain exactly 64 bytes") + ASSERT(ORIGIN(RAM) == __regulator_recovery_end__, + "application RAM must start after regulator recovery") + /* Export the direct-access handoff ABI even though no input section owns it. */ __mota_hybrid_handoff_start__ = ADDR(.persistent) + SIZEOF(.persistent); __mota_hybrid_handoff_end__ = ORIGIN(PERSISTENT_RAM) + LENGTH(PERSISTENT_RAM); @@ -43,8 +61,8 @@ SECTIONS "mOTA hybrid handoff end must remain fixed") ASSERT(__mota_hybrid_handoff_end__ - __mota_hybrid_handoff_start__ == 72, "mOTA hybrid handoff must remain exactly 72 bytes") - ASSERT(ORIGIN(RAM) == __mota_hybrid_handoff_end__, - "normal RAM must start immediately after the mOTA handoff") + ASSERT(ORIGIN(REGULATOR_RECOVERY_RAM) == __mota_hybrid_handoff_end__, + "regulator recovery must follow the mOTA handoff") ASSERT(ORIGIN(RAM) >= __mota_sd_auth_end__, "application RAM must not overlap SD OTA authorization") diff --git a/boards/nrf52840_s140_v7_xiao_bootloader_ota.ld b/boards/nrf52840_s140_v7_xiao_bootloader_ota.ld index 699e6e2aa..8a9e78f24 100644 --- a/boards/nrf52840_s140_v7_xiao_bootloader_ota.ld +++ b/boards/nrf52840_s140_v7_xiao_bootloader_ota.ld @@ -14,6 +14,9 @@ MEMORY /* To keep data in RAM across resets */ PERSISTENT_RAM (rwx) : ORIGIN = 0x20006000, LENGTH = 8 + /* Separate reset-retained state; clock and OTA handoff ABIs stay fixed. */ + REGULATOR_RECOVERY_RAM (rwx) : ORIGIN = 0x20006050, LENGTH = 64 + /* SRAM required by SoftDevice depend on * - Attribute Table Size (Number of Services and Characteristics) * - Vendor UUID count @@ -21,7 +24,7 @@ MEMORY * - Concurrent connection peripheral + central + secure links * - Event Len, HVN queue, Write CMD queue */ - RAM (rwx) : ORIGIN = 0x20006000 + 8, LENGTH = 0x20040000 - 0x20006000 - 8 + RAM (rwx) : ORIGIN = 0x20006090, LENGTH = 0x20040000 - 0x20006090 } SECTIONS @@ -34,6 +37,21 @@ SECTIONS . = ALIGN(4); } > PERSISTENT_RAM + .regulator_recovery (NOLOAD) : + { + __regulator_recovery_start__ = .; + KEEP(*(.regulator_recovery)) + . = ORIGIN(REGULATOR_RECOVERY_RAM) + LENGTH(REGULATOR_RECOVERY_RAM); + __regulator_recovery_end__ = .; + } > REGULATOR_RECOVERY_RAM + + ASSERT(__regulator_recovery_start__ == 0x20006050, + "regulator recovery start must remain fixed") + ASSERT(__regulator_recovery_end__ == 0x20006090, + "regulator recovery reservation must remain exactly 64 bytes") + ASSERT(ORIGIN(RAM) == __regulator_recovery_end__, + "application RAM must start after regulator recovery") + . = ALIGN(4); .svc_data : { diff --git a/docs/cli_commands.md b/docs/cli_commands.md index ebbf82e72..cbec4abc8 100644 --- a/docs/cli_commands.md +++ b/docs/cli_commands.md @@ -1537,6 +1537,45 @@ capacity. Remote use follows the existing administrator-command permissions. ### Radio +#### Select MCU and LoRa regulator modes + +```text +get mcu.regulator +set mcu.regulator auto|dcdc|ldo +get radio.regulator +set radio.regulator auto|dcdc|ldo +reboot +``` + +These are independent controls. `auto` follows the board's existing default; +`dcdc` requests its switching regulator and `ldo` requests its linear regulator. +Settings are saved for the next reboot. The getter reports the saved choice, +active mode, automatic fallback, crash streak and whether recovery is available. +Setting a mode again, including the same value, clears that regulator's learned +fallback and crash streak. The other regulator keeps its settings. + +Choices depend on the board's verified circuit. MCU selection is available on +nRF52 boards that already initialize their supported REG1 DC-DC regulator; it +does not control REG0, an external PMIC, or ESP32/RP2040 processor regulators. +Radio selection covers supported SX1262, LR1110/LR1121 and Meshnology W12 LR2021 +implementations. A board with only verified LDO support rejects `dcdc`. +Unverified LR2021 switching-regulator circuits retain their existing mode. + +On platforms with retained crash recovery, three consecutive qualifying crashes +while a domain is using DC-DC select LDO for that domain on the next boot. +Each crash requires a valid last battery sample of at least 50%, no more than +60 seconds old at the last heartbeat. Low/unknown battery readings, stale +samples, ordinary reboots, sleep wakes and unknown reset causes break the +streak. Five minutes of healthy operation also clears the streak; a later crash +starts a new one. LDO fallback stays selected until a mode is explicitly set +again; recovery never switches back to DC-DC automatically. + +ESP32 WebConfig shows **Power regulators** under **Radio → Advanced** when +supported, with separate processor/radio choices and active/fallback status. +Only supported options are offered. **Clear fallback on restart** reapplies the +current choice through the normal save flow. Saving either control restarts the +node after the save succeeds. See [regulator recovery and hardware checks](power_saving_diagnostics.md#user-selectable-regulators-and-crash-recovery). + #### View or change this node's radio parameters **Usage:** - `get radio` diff --git a/docs/power_saving_diagnostics.md b/docs/power_saving_diagnostics.md index 6f6f5d677..0424909dd 100644 --- a/docs/power_saving_diagnostics.md +++ b/docs/power_saving_diagnostics.md @@ -137,12 +137,68 @@ measurements on the physical core/module combination. ## Board regulator initialization -RAK4631 Companion uses the same nRF52840 REG1 DC/DC initialization as the other -RAK4631 roles. The former Companion-only force-LDO flag has been removed. This -does not change REG0, the SX1262 regulator, storage layout, or boot-voltage -protection. The shared initializer uses the SoftDevice API when BLE's stack is -already active and the hardware register otherwise; Companion starts the board -before it starts Bluetooth. +### User-selectable regulators and crash recovery + +`mcu.regulator` and `radio.regulator` independently select `auto`, `dcdc` or +`ldo` where the board supports those modes. `auto` preserves its existing board +default. The choice is saved and takes effect after `reboot`; the two getters +show requested/active mode, fallback, crash count and recovery availability. +An explicit setter clears the corresponding fallback and streak, even when the +same value is saved again. See the [CLI commands](cli_commands.md#select-mcu-and-lora-regulator-modes). + +Processor selection applies to the existing, circuit-supported nRF52 REG1 +DC-DC path. It does not select REG0, change an external PMIC, or expose an +ESP32/RP2040 CPU regulator control. Radio controls apply to the supported +SX1262, LR1110/LR1121 and Meshnology W12 LR2021 implementations. DC-DC is offered +only when that board's regulator circuit is supported. LDO-only boards reject +`dcdc`; unverified LR2021 switching circuits keep their existing mode. + +Automatic recovery uses reset-retained RAM on supported platforms. A domain +must have been armed in DC-DC mode before the crash, with a valid last battery +sample of at least **50%**, no more than **60 seconds** old at its last +heartbeat. The **third consecutive qualifying crash** selects LDO before that +domain starts again and saves the fallback. MCU and radio streaks are separate; +if both were using DC-DC during the same qualifying failures, both can fall +back. This is a recovery action, not proof that a regulator caused the crashes. + +Low/unknown battery, stale samples, cold starts, intentional reboots, sleep +wakes and unclassified resets break a streak. Corrupt retained state cannot +add a crash. **Five healthy minutes** clear the running streak; a later crash +starts a new one. The saved LDO fallback survives normal resets and power +cycles. It stays in LDO until a user explicitly selects a mode again, with no +automatic return to DC-DC. Crash bookkeeping stays in retained RAM rather than +writing flash at every heartbeat. + +Battery eligibility follows the board's battery measurement and configured +percentage curve. USB supply voltage alone does not establish that a physical +battery is at 50%; validate battery-only starts and the board's absent-battery +reading when qualifying recovery. Boards without a trustworthy battery reading +should report it invalid. A getter reporting recovery unavailable still permits +supported manual mode selection. + +ESP32 WebConfig exposes supported controls under **Radio → Advanced → Power +regulators**, showing active mode and fallback status. Unsupported domains and +DC-DC options are hidden. Saving reboots only after the authenticated save +completes successfully. **Clear fallback on restart** lets a user retry the +current saved mode without first choosing a different one. + +For hardware qualification, compare both modes with battery-only cold starts, +normal reboots, sleep/wake, BLE/WiFi and radio TX/RX under load. Confirm that +three injected qualifying watchdog/fault resets select LDO, that fewer than +three and low/unknown-battery resets do not, and that an explicit setter restores +the requested choice. Also check current consumption and voltage during TX; +native recovery tests and successful firmware builds do not establish these +physical results. + +### Existing board defaults + +RAK4631 Companion shares the nRF52840 REG1 regulator path with the other +RAK4631 roles. `auto` preserves its DC-DC default; the former Companion-only +force-LDO flag has been removed. Saved mode selection is deferred until board +ADC and primary filesystem initialization are complete, before display, radio +and wireless startup. This retains boot-voltage protection and keeps REG0 and +storage layout unchanged. The shared initializer uses the SoftDevice API when +BLE's stack is already active and the hardware register otherwise. [RAK documents DC/DC support](https://docs.rakwireless.com/product-categories/wisduo/rak4630-module/quickstart/) for the module. The related upstream [battery-startup report #1878](https://github.com/meshcore-dev/MeshCore/issues/1878) @@ -152,8 +208,8 @@ DC/DC failure. [PR #1914](https://github.com/meshcore-dev/MeshCore/pull/1914) also changes boot-voltage/wakeup handling and is not proof that every failure in that thread has the same cause. -Host startup tests cover both SoftDevice states and regulator selection before -the boot-voltage check. Firmware compilation is not hardware qualification: +Host startup tests cover both SoftDevice states and deferred regulator selection +with boot-voltage protection preserved. Firmware compilation is not hardware qualification: compare battery-only cold starts, low-voltage recovery, BLE operation and settings writes/reboots on the actual board/baseboard revisions before a fleet rollout. USB power can mask the reported startup symptoms. A current meter is @@ -176,9 +232,10 @@ external LDO, PMIC output, or radio regulator. | Minew ME25LS01 | [Manufacturer datasheet](https://store.minewsemi.com/wp-content/uploads/2024/03/ME25LS01_LR1110_Datasheet_K_EN.pdf), electrical schematic page 9: MCU DCC through ML2/ML3 to DEC4_6 and MC15/MC16. | The startup tests execute each real `begin()` with SoftDevice off/on and power -management compiled out/in. They require DC/DC before peripheral initialization -and before any enabled boot-voltage check, while retaining one common board -initialization. The previous bypass fails these tests. +management compiled out/in. Normal startup defers the selected mode until the +saved settings and recovery state can be read, while retaining one common board +initialization. The board class still defines the circuit-supported default; +the settings layer applies it before display/radio startup. ThinkNode M3/M4/M6 and generic ProMicro remain unchanged pending exact circuit or physical-board confirmation; their DC/DC inheritance alone is not evidence. diff --git a/examples/companion_radio/MyMesh.cpp b/examples/companion_radio/MyMesh.cpp index 980ba280e..a8ac603de 100644 --- a/examples/companion_radio/MyMesh.cpp +++ b/examples/companion_radio/MyMesh.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -8222,6 +8223,7 @@ bool MyMesh::handleExtraFsHilCommand(const char* command, char* reply, if (strcmp(action, "unsafe-reset CONFIRM") == 0) { // Intentionally bypass all persistence hooks so HIL can prove that a // mutation was already committed before an event-driven sleep. + meshRegulatorCleanReset(); // Retained marker only; no persistence flush. NVIC_SystemReset(); while (true) {} } @@ -10720,6 +10722,8 @@ bool MyMesh::handleCommand(const char* command, uint32_t sender_timestamp, while (*command == ' ' || *command == '\t') command++; } + if (mesh::power::handleRegulatorCommand(command, reply, reply_capacity)) return true; + #if COMPANION_FEATURE_READER if (sender_timestamp == 0 && mesh::morseTimingActive(_radio) && isCompanionReaderRequest(command)) { diff --git a/examples/companion_radio/main.cpp b/examples/companion_radio/main.cpp index 13aa261e7..02d1fc25f 100644 --- a/examples/companion_radio/main.cpp +++ b/examples/companion_radio/main.cpp @@ -1,3 +1,4 @@ +#include #include // needed for PlatformIO #include #include @@ -3600,6 +3601,16 @@ void setup() { #endif + FILESYSTEM* regulator_prefs_fs = store.getPrimaryFS(); +#if defined(NRF52_PLATFORM) + if (!mesh::storage::internalPrimaryFilesystemReady(primary_fs_boot) + && !store.isVolatilePrimaryFS()) regulator_prefs_fs = nullptr; +#endif + if (!mesh::power::beginRegulatorSettings(board, radio_driver, regulator_prefs_fs)) { + MESH_DEBUG_PRINTLN("Regulator selection could not be applied"); + } + + #ifdef DISPLAY_CLASS // Load only the display policy before radio and secondary-storage startup. FILESYSTEM* display_prefs_fs = store.getPrimaryFS(); @@ -4205,6 +4216,7 @@ void loop() { if (!morse_timing) companionPairingUiHilProbe(); #endif rtc_clock.tick(); + mesh::power::serviceRegulatorSettings(); board.loop(); if (mesh::serviceUsbLoggingWatchdog(usbLoggingRecoverySafe)) board.reboot(); #ifdef TBEAM_1W diff --git a/examples/kiss_modem/main.cpp b/examples/kiss_modem/main.cpp index ff8acd964..7a0bfbd67 100644 --- a/examples/kiss_modem/main.cpp +++ b/examples/kiss_modem/main.cpp @@ -180,6 +180,7 @@ void setup() { #endif KISS_BOOT_STAGE("board.before"); board.begin(); + board.applyMcuRegulator(mesh::power::RegulatorMode::Default); KISS_BOOT_STAGE("board.after"); #if defined(ESP32) diff --git a/examples/partition_expander/main.cpp b/examples/partition_expander/main.cpp index 86371ef61..d270e32f0 100644 --- a/examples/partition_expander/main.cpp +++ b/examples/partition_expander/main.cpp @@ -92,6 +92,7 @@ bool loadPrimaryRadio(mesh::RadioProfileParams& profile) { void startLoRaReceiver() { board.begin(); + board.applyMcuRegulator(mesh::power::RegulatorMode::Default); if (!radio_init()) { Serial.println("Partition Expander: radio init failed; Wi-Fi recovery remains available"); return; diff --git a/examples/simple_repeater/main.cpp b/examples/simple_repeater/main.cpp index 867ac752a..8e67c1d55 100644 --- a/examples/simple_repeater/main.cpp +++ b/examples/simple_repeater/main.cpp @@ -1,3 +1,4 @@ +#include #include // needed for PlatformIO #include #include @@ -203,6 +204,9 @@ void setup() { #else #error "need to define filesystem" #endif + if (!mesh::power::beginRegulatorSettings(board, radio_driver, fs)) { + MESH_DEBUG_PRINTLN("Regulator selection could not be applied"); + } mesh::hilStartupTrace("fs_ready"); #ifdef DISPLAY_CLASS mesh::hilStartupTrace("display_begin"); @@ -538,6 +542,7 @@ static void __attribute__((noinline)) serviceCommandInterfaces() { command[0] = 0; // reset command buffer } + mesh::power::serviceRegulatorSettings(); board.loop(); // let the board feed its watchdog, run periodic housekeeping #ifdef ETHERNET_ENABLED diff --git a/examples/simple_room_server/main.cpp b/examples/simple_room_server/main.cpp index 7c6e32001..6b9800cb7 100644 --- a/examples/simple_room_server/main.cpp +++ b/examples/simple_room_server/main.cpp @@ -1,3 +1,4 @@ +#include #include // needed for PlatformIO #include #include @@ -137,6 +138,9 @@ void setup() { #else #error "need to define filesystem" #endif + if (!mesh::power::beginRegulatorSettings(board, radio_driver, fs)) { + MESH_DEBUG_PRINTLN("Regulator selection could not be applied"); + } #ifdef DISPLAY_CLASS mesh::ui::loadDisplayPowerSettings(fs, false); mesh::ui::StartupScreen startup_screen; @@ -390,6 +394,7 @@ void loop() { if (display_ready) ui_task.loop(); #endif rtc_clock.tick(); + mesh::power::serviceRegulatorSettings(); board.loop(); if (mesh::serviceUsbLoggingWatchdog(usbLoggingRecoverySafe)) board.reboot(); #if MESH_USB_CONSOLE_COOPERATIVE diff --git a/examples/simple_secure_chat/main.cpp b/examples/simple_secure_chat/main.cpp index 781361938..dcfde4c42 100644 --- a/examples/simple_secure_chat/main.cpp +++ b/examples/simple_secure_chat/main.cpp @@ -748,6 +748,7 @@ void setup() { #endif board.begin(); + board.applyMcuRegulator(mesh::power::RegulatorMode::Default); #ifdef HAS_EXTERNAL_WATCHDOG external_watchdog.begin(); diff --git a/examples/simple_sensor/main.cpp b/examples/simple_sensor/main.cpp index d74136a69..d1fb64563 100644 --- a/examples/simple_sensor/main.cpp +++ b/examples/simple_sensor/main.cpp @@ -1,3 +1,4 @@ +#include #include "SensorMesh.h" #include #include @@ -162,6 +163,9 @@ void setup() { #else #error "need to define filesystem" #endif + if (!mesh::power::beginRegulatorSettings(board, radio_driver, fs)) { + MESH_DEBUG_PRINTLN("Regulator selection could not be applied"); + } #ifdef DISPLAY_CLASS mesh::ui::loadDisplayPowerSettings(fs, false); mesh::ui::StartupScreen startup_screen; @@ -351,6 +355,7 @@ void loop() { command[0] = 0; // reset command buffer } + mesh::power::serviceRegulatorSettings(); board.loop(); // let the board feed its watchdog, run periodic housekeeping the_mesh.loop(); diff --git a/scripts/nrf52_ble_dfu_fix.py b/scripts/nrf52_ble_dfu_fix.py index 19b7d1a83..57f954c11 100644 --- a/scripts/nrf52_ble_dfu_fix.py +++ b/scripts/nrf52_ble_dfu_fix.py @@ -12,7 +12,8 @@ from pathlib import Path OLD_HELPER = 'extern "C" void bootloader_util_app_start(uint32_t start_addr);\n' HELPER_NAME = "mesh_nrf52_dfu_jump" -HELPER = r'''// Keep all stack operations inside this assembly-only transition. In particular, +CLEAN_RESET_DECLARATION = 'extern "C" void meshRegulatorCleanReset() __attribute__((weak));\n' +HELPER = CLEAN_RESET_DECLARATION + r'''// Keep all stack operations inside this assembly-only transition. In particular, // the callback must return neither through its PSP frame nor through a C helper // after CONTROL selects MSP. Preserve handler-mode entry supported by BLEDfu. extern "C" __attribute__((naked, noinline, noreturn, used)) @@ -80,6 +81,9 @@ OLD_JUMP = ''' __set_CONTROL(0); // switch to MSP, required if using FreeRT ''' JUMP = ''' // The vector-table SVC above must complete before the helper masks // interrupts. B1 and the retained peer record preserve legacy DFU entry. + // Only a committed handoff is intentional: rejected/aborted DFU remains + // covered by crash recovery while the application continues running. + if (meshRegulatorCleanReset) meshRegulatorCleanReset(); mesh_nrf52_dfu_jump(NRF_UICR->NRFFW[0]); ''' diff --git a/src/Dispatcher.h b/src/Dispatcher.h index f0f069cec..2f5cc5e9a 100644 --- a/src/Dispatcher.h +++ b/src/Dispatcher.h @@ -10,6 +10,7 @@ #include #include #include +#include #ifndef RADIO_LIVENESS_SOFT_ONLY #include #endif @@ -36,6 +37,12 @@ public: */ class Radio { public: + virtual uint8_t regulatorModes() const { return 0; } + virtual power::RegulatorMode defaultRegulatorMode() const { return power::RegulatorMode::Default; } + // Cache a selection before the first hardware initialization. Save later + // choices for the next reboot; never change a live RX/TX regulator here. + virtual bool configureBootRegulator(power::RegulatorMode) { return false; } + virtual power::RegulatorMode activeRegulatorMode() const { return power::RegulatorMode::Default; } static constexpr uint32_t CarrierWaveDefaultMillis = 10000; static constexpr uint32_t CarrierWaveMaxMillis = 60000; virtual bool supportsCarrierWave() const { return false; } diff --git a/src/MeshCore.h b/src/MeshCore.h index 4e138b705..819f87433 100644 --- a/src/MeshCore.h +++ b/src/MeshCore.h @@ -5,6 +5,7 @@ #include #include "helpers/UsbLogging.h" #include "helpers/BatteryChargeSupport.h" +#include "helpers/RegulatorMode.h" #include "helpers/PowerSavingDiagnostics.h" #if defined(ARDUINO) && (defined(RP2040_PLATFORM) || defined(STM32_PLATFORM)) #include @@ -145,6 +146,14 @@ public: virtual void onBeforeTransmit() { } virtual void onAfterTransmit() { } virtual void reboot() = 0; + virtual uint8_t mcuRegulatorModes() const { return 0; } + virtual power::RegulatorMode defaultMcuRegulatorMode() const { + return power::RegulatorMode::Default; + } + virtual bool applyMcuRegulator(power::RegulatorMode) { return false; } + virtual power::RegulatorMode activeMcuRegulatorMode() const { + return power::RegulatorMode::Default; + } // Reboot into a UF2-capable bootloader when the platform supports the // retained reset request. Returns false only when unsupported or rejected; // a successful implementation resets and does not return. diff --git a/src/helpers/CommonCLI.cpp b/src/helpers/CommonCLI.cpp index 93909a593..7abe0efa0 100644 --- a/src/helpers/CommonCLI.cpp +++ b/src/helpers/CommonCLI.cpp @@ -1,3 +1,4 @@ +#include #include #include "CarrierTools.h" #include "PacketFileLoggingConfig.h" @@ -2978,6 +2979,7 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, char* command, char* re #if MESH_BATTERY_CHARGE_CONTROL if (mesh::power::handleBatteryChargeCommand(*_board, command, reply, 160)) return; #endif + if (mesh::power::handleRegulatorCommand(command, reply, 157)) return; if (mesh::handleUsbLoggingWatchdogCommand(command, reply, 160)) return; if (mesh::powerdiag::handleCommand(command, reply, 157, millis())) return; if (handleManagementCommand(command, reply)) return; diff --git a/src/helpers/NRF52Board.cpp b/src/helpers/NRF52Board.cpp index e6e2121cc..52a9f5c23 100644 --- a/src/helpers/NRF52Board.cpp +++ b/src/helpers/NRF52Board.cpp @@ -9,6 +9,7 @@ #include #include "UserGpioPinPolicy.h" #include "PowerSavingDiagnostics.h" +#include "Nrf52RegulatorPlatform.h" #include #include "ble_gap.h" @@ -29,6 +30,87 @@ static uint16_t ota_conn_handle = BLE_CONN_HANDLE_INVALID; static bool ota_active = false; static bool ota_ble_started = false; +// Intentional reboot paths share the recovery policy's clean-reset marker. +// Keep this optional for standalone board/library builds without the policy. +extern "C" void meshRegulatorCleanReset() __attribute__((weak)); + +namespace { +volatile mesh::power::RecoveryRecord regulator_recovery_record + __attribute__((section(".regulator_recovery"), used, aligned(4))); +static_assert(sizeof(mesh::power::RecoveryRecord) <= 64, + "nRF52 regulator recovery exceeds retained allocation"); +uint32_t regulator_reset_reason = 0; +uint8_t regulator_shutdown_reason = 0; +} + +extern "C" { +extern uint8_t __regulator_recovery_start__[] __attribute__((weak)); +extern uint8_t __regulator_recovery_end__[] __attribute__((weak)); +} + +// Capture before the core's SystemInit constructor applies reset errata and +// before power management clears GPREGRET2. This also runs on boards without +// NRF52_POWER_MANAGEMENT; the recovery policy never writes either GPREGRET. +static void __attribute__((constructor(101))) nrf52_regulator_reset_capture() { + regulator_reset_reason = NRF_POWER->RESETREAS; + regulator_shutdown_reason = NRF_POWER->GPREGRET2; +} + +namespace mesh { namespace power { +volatile RecoveryRecord& platformRecoveryRecord() { + return regulator_recovery_record; +} + +bool platformRecoverySupported() { + return reinterpret_cast(__regulator_recovery_start__) == 0x20006050UL + && reinterpret_cast(__regulator_recovery_end__) == 0x20006090UL + && reinterpret_cast(®ulator_recovery_record) == 0x20006050UL; +} + +ResetKind platformResetKind() { + // RESETREAS is sticky. Boards without power management otherwise retain + // wake bits forever and could hide a later real watchdog failure. + static bool acknowledged = false; + if (!acknowledged) { + uint8_t sd_enabled = 0; + if (mesh_nrf52::softdeviceIsEnabled(sd_enabled) != NRF_SUCCESS) + return ResetKind::Unknown; + if (sd_enabled) { + if (sd_power_reset_reason_clr(0xFFFFFFFFUL) != NRF_SUCCESS) + return ResetKind::Unknown; + } else { + NRF_POWER->RESETREAS = 0xFFFFFFFFUL; + } + acknowledged = true; + } + // A deliberate SYSTEMOFF, reset-pin press, or debugger event never counts + // against DCDC, even if another latched reason bit is also present. + if (regulator_shutdown_reason == 0x4C // low voltage + || regulator_shutdown_reason == 0x55 // user shutdown + || regulator_shutdown_reason == 0x42) // boot protection + return ResetKind::Intentional; + const uint32_t reason = regulator_reset_reason; + if (reason & POWER_RESETREAS_RESETPIN_Msk) return ResetKind::Intentional; +#ifdef POWER_RESETREAS_DIF_Msk + if (reason & POWER_RESETREAS_DIF_Msk) return ResetKind::Intentional; +#endif + uint32_t wakes = 0; +#ifdef POWER_RESETREAS_OFF_Msk + wakes |= POWER_RESETREAS_OFF_Msk; +#endif +#ifdef POWER_RESETREAS_LPCOMP_Msk + wakes |= POWER_RESETREAS_LPCOMP_Msk; +#endif +#ifdef POWER_RESETREAS_VBUS_Msk + wakes |= POWER_RESETREAS_VBUS_Msk; +#endif + if (reason & wakes) return ResetKind::Wake; + if (reason & (POWER_RESETREAS_DOG_Msk | POWER_RESETREAS_LOCKUP_Msk + | POWER_RESETREAS_SREQ_Msk)) return ResetKind::Crash; + return reason == 0 ? ResetKind::Cold : ResetKind::Unknown; +} +}} // namespace mesh::power + // A normal internal-flash operation completes in milliseconds. One minute is // deliberately generous for other legitimate application work while still // recovering an indefinitely blocked SoftDevice flash wait without requiring @@ -113,7 +195,7 @@ bool NRF52Board::rebootToUf2Bootloader() { NRF_POWER->GPREGRET = DFU_MAGIC_UF2_RESET; } - NVIC_SystemReset(); + reboot(); return true; } @@ -140,6 +222,46 @@ void NRF52Board::begin() { #endif } +void NRF52Board::reboot() { + if (meshRegulatorCleanReset) meshRegulatorCleanReset(); + NVIC_SystemReset(); +} + +uint8_t NRF52Board::mcuRegulatorModes() const { + return cpu_dcdc_supported + ? mesh::power::REGULATOR_DCDC | mesh::power::REGULATOR_LDO : 0; +} + +mesh::power::RegulatorMode NRF52Board::defaultMcuRegulatorMode() const { + return cpu_dcdc_supported ? mesh::power::RegulatorMode::Dcdc + : mesh::power::RegulatorMode::Default; +} + +mesh::power::RegulatorMode NRF52Board::activeMcuRegulatorMode() const { + return cpu_dcdc_supported ? cpu_regulator_mode + : mesh::power::RegulatorMode::Default; +} + +bool NRF52Board::applyMcuRegulator(mesh::power::RegulatorMode mode) { + using mesh::power::RegulatorMode; + if (!cpu_dcdc_supported) return false; + if (mode == RegulatorMode::Default) mode = defaultMcuRegulatorMode(); + if (mode != RegulatorMode::Dcdc && mode != RegulatorMode::Ldo) return false; + + uint8_t sd_enabled = 0; + if (mesh_nrf52::softdeviceIsEnabled(sd_enabled) != NRF_SUCCESS) return false; + const bool dcdc = mode == RegulatorMode::Dcdc; + if (sd_enabled) { + if (sd_power_dcdc_mode_set(dcdc ? NRF_POWER_DCDC_ENABLE + : NRF_POWER_DCDC_DISABLE) != NRF_SUCCESS) + return false; + } else { + NRF_POWER->DCDCEN = dcdc ? 1 : 0; + } + cpu_regulator_mode = mode; + return true; +} + void NRF52Board::loop() { #ifdef NRF52_POWER_MANAGEMENT if (!mesh::power::voltagePolicySupported()) return; @@ -454,15 +576,10 @@ void NRF52Board::armVbusWake() { void NRF52BoardDCDC::begin() { NRF52Board::begin(); - - // Enable DC/DC converter for improved power efficiency - uint8_t sd_enabled = 0; - mesh_nrf52::softdeviceIsEnabled(sd_enabled); - if (sd_enabled) { - sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE); - } else { - NRF_POWER->DCDCEN = 1; - } + // Only boards which explicitly call this method approve the external LC + // circuitry. The common startup hook applies saved choices after the + // board's battery ADC and filesystem are ready; do not enable DCDC here. + cpu_dcdc_supported = true; } bool NRF52Board::isExternalPowered() { diff --git a/src/helpers/NRF52Board.h b/src/helpers/NRF52Board.h index ca950187b..1dc58b97e 100644 --- a/src/helpers/NRF52Board.h +++ b/src/helpers/NRF52Board.h @@ -3,6 +3,7 @@ #include #include #include +#include #if defined(NRF52_PLATFORM) @@ -35,6 +36,8 @@ class NRF52Board : public mesh::MainBoard { protected: uint8_t startup_reason; char *ota_name; + bool cpu_dcdc_supported = false; + mesh::power::RegulatorMode cpu_regulator_mode = mesh::power::RegulatorMode::Ldo; #ifdef NRF52_POWER_MANAGEMENT void pwrmgtInit() { initPowerMgr(); } @@ -65,7 +68,11 @@ public: void serviceWatchdog() override; virtual uint8_t getStartupReason() const override { return startup_reason; } virtual float getMCUTemperature() override; - virtual void reboot() override { NVIC_SystemReset(); } + void reboot() override; + uint8_t mcuRegulatorModes() const override; + mesh::power::RegulatorMode defaultMcuRegulatorMode() const override; + bool applyMcuRegulator(mesh::power::RegulatorMode mode) override; + mesh::power::RegulatorMode activeMcuRegulatorMode() const override; bool rebootToUf2Bootloader() override; virtual void shutdownPeripherals(); virtual void powerOff() override; diff --git a/src/helpers/Nrf52RegulatorPlatform.h b/src/helpers/Nrf52RegulatorPlatform.h new file mode 100644 index 000000000..290653a94 --- /dev/null +++ b/src/helpers/Nrf52RegulatorPlatform.h @@ -0,0 +1,15 @@ +#pragma once + +#if defined(NRF52_PLATFORM) +#include "RegulatorRecovery.h" + +namespace mesh { namespace power { + +volatile RecoveryRecord& platformRecoveryRecord(); +ResetKind platformResetKind(); +// False for an unsupported linker layout, so an unreserved orphan section +// cannot accidentally enable automatic recovery. +bool platformRecoverySupported(); + +}} // namespace mesh::power +#endif diff --git a/src/helpers/RegulatorMode.h b/src/helpers/RegulatorMode.h new file mode 100644 index 000000000..240b1aae3 --- /dev/null +++ b/src/helpers/RegulatorMode.h @@ -0,0 +1,16 @@ +#pragma once +#include + +namespace mesh { namespace power { + +enum class RegulatorMode : uint8_t { Default = 0, Dcdc = 1, Ldo = 2 }; +constexpr uint8_t REGULATOR_DCDC = 1; +constexpr uint8_t REGULATOR_LDO = 2; + +inline bool regulatorModeSupported(uint8_t modes, RegulatorMode mode) { + return modes != 0 && (mode == RegulatorMode::Default + || (mode == RegulatorMode::Dcdc && (modes & REGULATOR_DCDC)) + || (mode == RegulatorMode::Ldo && (modes & REGULATOR_LDO))); +} + +}} // namespace mesh::power diff --git a/src/helpers/RegulatorPlatform.cpp b/src/helpers/RegulatorPlatform.cpp new file mode 100644 index 000000000..9fd8abecd --- /dev/null +++ b/src/helpers/RegulatorPlatform.cpp @@ -0,0 +1,58 @@ +#include "RegulatorPlatform.h" + +#if defined(ESP32) +#include +#include +#include +#if SOC_RTC_SLOW_MEM_SUPPORTED || SOC_RTC_FAST_MEM_SUPPORTED +#define MESH_REGULATOR_RTC 1 +static RTC_NOINIT_ATTR volatile mesh::power::RecoveryRecord regulator_record; +#else +static volatile mesh::power::RecoveryRecord regulator_record; +#endif +namespace mesh { namespace power { +volatile RecoveryRecord& platformRecoveryRecord() { return regulator_record; } +bool platformRecoverySupported() { +#ifdef MESH_REGULATOR_RTC + return true; +#else + return false; +#endif +} +ResetKind platformResetKind() { + switch (esp_reset_reason()) { + case ESP_RST_PANIC: + case ESP_RST_INT_WDT: + case ESP_RST_TASK_WDT: + case ESP_RST_WDT: return ResetKind::Crash; + case ESP_RST_DEEPSLEEP: return ResetKind::Wake; + case ESP_RST_SW: return ResetKind::Intentional; + case ESP_RST_POWERON: + case ESP_RST_EXT: return ResetKind::Cold; + // A supply failure is not evidence that the DC/DC regulator is faulty. + default: return ResetKind::Unknown; + } +} +}} +#elif defined(RP2040_PLATFORM) +#include +// Arduino-Pico's linker explicitly keeps this outside BSS and above the +// boot-ROM's scratch area. No watchdog scratch registers are commandeered. +static volatile mesh::power::RecoveryRecord regulator_record + __attribute__((section(".uninitialized_data.regulator_recovery"), used)); +namespace mesh { namespace power { +volatile RecoveryRecord& platformRecoveryRecord() { return regulator_record; } +bool platformRecoverySupported() { return true; } +ResetKind platformResetKind() { + if (watchdog_enable_caused_reboot()) return ResetKind::Crash; + return watchdog_caused_reboot() ? ResetKind::Intentional : ResetKind::Cold; +} +}} +#elif !defined(NRF52_PLATFORM) +namespace mesh { namespace power { +static volatile RecoveryRecord regulator_record; +volatile RecoveryRecord& platformRecoveryRecord() { return regulator_record; } +bool platformRecoverySupported() { return false; } +ResetKind platformResetKind() { return ResetKind::Unknown; } +}} +#endif diff --git a/src/helpers/RegulatorPlatform.h b/src/helpers/RegulatorPlatform.h new file mode 100644 index 000000000..572a3d06c --- /dev/null +++ b/src/helpers/RegulatorPlatform.h @@ -0,0 +1,8 @@ +#pragma once +#include "RegulatorRecovery.h" + +namespace mesh { namespace power { +volatile RecoveryRecord& platformRecoveryRecord(); +ResetKind platformResetKind(); +bool platformRecoverySupported(); +}} diff --git a/src/helpers/RegulatorRecovery.h b/src/helpers/RegulatorRecovery.h new file mode 100644 index 000000000..984f45d6c --- /dev/null +++ b/src/helpers/RegulatorRecovery.h @@ -0,0 +1,206 @@ +#pragma once + +#include +#include + +namespace mesh { namespace power { + +constexpr uint8_t RECOVERY_MCU = 1; +constexpr uint8_t RECOVERY_RADIO = 2; +constexpr uint8_t RECOVERY_DOMAINS = RECOVERY_MCU | RECOVERY_RADIO; +constexpr uint8_t REGULATOR_CRASH_THRESHOLD = 3; +constexpr uint32_t REGULATOR_HEALTHY_MS = 300000; +constexpr uint32_t REGULATOR_BATTERY_FRESH_MS = 60000; + +enum class ResetKind : uint8_t { Cold, Intentional, Wake, Crash, Unknown }; + +// Keep this POD in reset-retained RAM, never in flash. The checksum is committed +// last; an interrupted write or an uninitialised retained region cannot add a +// crash to the next boot. Only the sticky fallback mask needs flash storage. +struct RecoveryRecord { + uint32_t magic; + uint16_t version; + uint16_t bytes; + uint32_t startedAt; + uint32_t heartbeatAt; + uint32_t batteryAt; + uint8_t activeDcdcMask; + uint8_t fallbackMask; + uint8_t mcuCrashes; + uint8_t radioCrashes; + uint8_t batteryPercent; + uint8_t flags; + uint16_t reserved; + uint32_t crc; +}; +static_assert(sizeof(RecoveryRecord) <= 64, "regulator recovery retention budget"); +static_assert(sizeof(RecoveryRecord) == 32, "regulator recovery record layout"); +static_assert(offsetof(RecoveryRecord, crc) == 28, "regulator recovery CRC layout"); + +class RecoveryPolicy { + public: + explicit RecoveryPolicy(volatile RecoveryRecord& retained) : retained_(retained), state_{} {} + + // Read the previous boot exactly once, before arm(). A cold/intentional/wake + // or unclassified reset breaks a streak, but never undoes a saved fallback. + void begin(ResetKind reset, uint8_t savedFallbackMask) { + RecoveryRecord previous{}; + read(previous); + const bool valid = isValid(previous); + state_ = RecoveryRecord{}; + state_.magic = kMagic; + state_.version = kVersion; + state_.bytes = sizeof(RecoveryRecord); + state_.fallbackMask = savedFallbackMask & RECOVERY_DOMAINS; + if (valid) { + state_.fallbackMask |= previous.fallbackMask; + if (reset == ResetKind::Crash && eligible(previous)) { + state_.mcuCrashes = nextCount(previous, RECOVERY_MCU, previous.mcuCrashes); + state_.radioCrashes = nextCount(previous, RECOVERY_RADIO, previous.radioCrashes); + if (state_.mcuCrashes >= REGULATOR_CRASH_THRESHOLD) + state_.fallbackMask |= RECOVERY_MCU; + if (state_.radioCrashes >= REGULATOR_CRASH_THRESHOLD) + state_.fallbackMask |= RECOVERY_RADIO; + } + } + // Leave the new boot disarmed until its actual selected modes and measured + // battery are known. A crash before that point cannot extend the streak. + commit(); + } + + // Call before enabling either DC-DC regulator / starting the radio. Each bit + // describes an actually selected DC-DC domain, not mere board capability. + void arm(uint8_t activeDcdcMask, uint32_t now, uint8_t percent, bool valid) { + state_.activeDcdcMask = activeDcdcMask & RECOVERY_DOMAINS & ~state_.fallbackMask; + state_.startedAt = state_.heartbeatAt = now; + state_.flags = kArmed; + setBattery(now, percent, valid); + commit(); + } + + // Heartbeats must not refresh the battery timestamp: a stale/unknown reading + // must never turn a USB-only device or a discharged battery into an event. + void heartbeat(uint32_t now) { + state_.heartbeatAt = now; + if ((state_.flags & kArmed) && !(state_.flags & kHealthy) && + elapsed(now, state_.startedAt) >= REGULATOR_HEALTHY_MS) { + state_.mcuCrashes = state_.radioCrashes = 0; + state_.flags |= kHealthy; + } + commit(); + } + + void updateBattery(uint32_t now, uint8_t percent, bool valid) { + setBattery(now, percent, valid); + commit(); + } + + void updateActiveDomains(uint8_t activeDcdcMask) { + state_.activeDcdcMask = activeDcdcMask & RECOVERY_DOMAINS & ~state_.fallbackMask; + commit(); + } + + // Convenience for callers that really take a fresh battery measurement each + // tick. Use heartbeat() separately when measurements are less frequent. + void tick(uint32_t now, uint8_t percent, bool valid) { + setBattery(now, percent, valid); + heartbeat(now); + } + + void markCleanReset() { + state_.flags = (state_.flags & ~kArmed) | kClean; + state_.mcuCrashes = state_.radioCrashes = 0; + commit(); + } + + // A deliberate user mode change resets only that domain's learned fallback. + void clearDomain(uint8_t domains) { + domains &= RECOVERY_DOMAINS; + state_.fallbackMask &= ~domains; + if (domains & RECOVERY_MCU) state_.mcuCrashes = 0; + if (domains & RECOVERY_RADIO) state_.radioCrashes = 0; + commit(); + } + + uint8_t fallbackMask() const { return state_.fallbackMask; } + uint8_t crashCount(uint8_t domain) const { + return domain == RECOVERY_MCU ? state_.mcuCrashes : + domain == RECOVERY_RADIO ? state_.radioCrashes : 0; + } + + private: + static constexpr uint32_t kMagic = 0x52504752; // RGPR + static constexpr uint16_t kVersion = 1; + static constexpr uint8_t kArmed = 1; + static constexpr uint8_t kClean = 2; + static constexpr uint8_t kBatteryValid = 4; + static constexpr uint8_t kHealthy = 8; + static constexpr uint8_t kFlags = kArmed | kClean | kBatteryValid | kHealthy; + + volatile RecoveryRecord& retained_; + RecoveryRecord state_; + + static uint32_t elapsed(uint32_t now, uint32_t then) { return now - then; } + + static uint32_t checksum(const RecoveryRecord& record) { + uint32_t crc = 0xffffffff; + const uint8_t* bytes = reinterpret_cast(&record); + for (size_t i = 0; i < offsetof(RecoveryRecord, crc); ++i) { + crc ^= bytes[i]; + for (uint8_t bit = 0; bit < 8; ++bit) + crc = (crc >> 1) ^ (0xedb88320u & (0u - (crc & 1u))); + } + return ~crc; + } + + static bool isValid(const RecoveryRecord& record) { + return record.magic == kMagic && record.version == kVersion && + record.bytes == sizeof(RecoveryRecord) && record.reserved == 0 && + !(record.activeDcdcMask & ~RECOVERY_DOMAINS) && + !(record.fallbackMask & ~RECOVERY_DOMAINS) && + !(record.flags & ~kFlags) && record.batteryPercent <= 100 && + record.mcuCrashes <= REGULATOR_CRASH_THRESHOLD && + record.radioCrashes <= REGULATOR_CRASH_THRESHOLD && + record.crc == checksum(record); + } + + static bool eligible(const RecoveryRecord& record) { + return (record.flags & (kArmed | kClean | kBatteryValid)) == (kArmed | kBatteryValid) && + record.batteryPercent >= 50 && + elapsed(record.heartbeatAt, record.batteryAt) <= REGULATOR_BATTERY_FRESH_MS; + } + + static uint8_t nextCount(const RecoveryRecord& previous, uint8_t domain, uint8_t count) { + if (!(previous.activeDcdcMask & domain) || (previous.fallbackMask & domain)) return 0; + return count < REGULATOR_CRASH_THRESHOLD ? count + 1 : REGULATOR_CRASH_THRESHOLD; + } + + void setBattery(uint32_t now, uint8_t percent, bool valid) { + state_.batteryAt = now; + state_.batteryPercent = percent <= 100 ? percent : 0; + if (valid && percent <= 100) state_.flags |= kBatteryValid; + else state_.flags &= ~kBatteryValid; + } + + void read(RecoveryRecord& result) const { + const volatile uint8_t* source = reinterpret_cast(&retained_); + uint8_t* target = reinterpret_cast(&result); + for (size_t i = 0; i < sizeof(result); ++i) target[i] = source[i]; + } + + void commit() { + state_.crc = checksum(state_); + // Invalidate before changing any payload, then publish its CRC last. No + // flash writes, heap allocation, interrupt dependencies, or platform APIs. + retained_.magic = 0; + retained_.crc = 0; + volatile uint8_t* target = reinterpret_cast(&retained_); + const uint8_t* source = reinterpret_cast(&state_); + for (size_t i = sizeof(state_.magic); i < offsetof(RecoveryRecord, crc); ++i) + target[i] = source[i]; + retained_.magic = state_.magic; + retained_.crc = state_.crc; + } +}; + +}} // namespace mesh::power diff --git a/src/helpers/RegulatorSettings.cpp b/src/helpers/RegulatorSettings.cpp new file mode 100644 index 000000000..4db18adc8 --- /dev/null +++ b/src/helpers/RegulatorSettings.cpp @@ -0,0 +1,264 @@ +#include "RegulatorSettings.h" +#include "RegulatorPlatform.h" +#include "NRF52VoltageRules.h" +#include "NRF52VoltagePolicy.h" +#include "PersistentStoreFormat.h" +#include +#include +#include +#include + +namespace mesh { namespace power { +namespace { +MainBoard* main_board = nullptr; +Radio* main_radio = nullptr; +FILESYSTEM* settings_fs = nullptr; +RegulatorMode requested[2] = {RegulatorMode::Default, RegulatorMode::Default}; +uint8_t saved_fallback = 0; +bool initialized = false; +bool fallback_saved = true; +uint32_t last_service = 0, last_battery = 0, last_save = 0; +RecoveryPolicy& recovery() { + static RecoveryPolicy policy(platformRecoveryRecord()); + return policy; +} +const char* const path = "/regulator_v1"; +const char* const temporary = "/regulator_v1.tmp"; +const char* const backup = "/regulator_v1.bak"; + +void encode(RegulatorMode mcu, RegulatorMode radio, uint8_t fallback, uint8_t (&data)[12]) { + memcpy(data, "REG1", 4); + data[4] = uint8_t(mcu); data[5] = uint8_t(radio); + data[6] = fallback; data[7] = 0; + storage::writeLE32(data + 8, storage::updateCRC32(0xffffffffUL, data, 8)); +} +bool readFile(const char* name, uint8_t (&data)[12]) { + if (!settings_fs) return false; +#if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM) + File file(*settings_fs); + if (!file.open(name, FILE_O_READ)) return false; +#else + File file = settings_fs->open(name, "r"); + if (!file) return false; +#endif + const bool complete = file.size() == sizeof(data) + && file.read(data, sizeof(data)) == sizeof(data); + file.close(); + return complete && memcmp(data, "REG1", 4) == 0 + && data[4] <= 2 && data[5] <= 2 && data[6] <= RECOVERY_DOMAINS + && data[7] == 0 && storage::readLE32(data + 8) + == storage::updateCRC32(0xffffffffUL, data, 8); +} +bool save(RegulatorMode mcu, RegulatorMode radio, uint8_t fallback) { + if (!settings_fs) return false; + settings_fs->remove(temporary); + if (settings_fs->exists(temporary)) return false; +#if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM) + File file(*settings_fs); + if (!file.open(temporary, FILE_O_WRITE)) return false; +#elif defined(RP2040_PLATFORM) + File file = settings_fs->open(temporary, "w"); + if (!file) return false; +#else + File file = settings_fs->open(temporary, "w", true); + if (!file) return false; +#endif + uint8_t data[12], checked[12]; + encode(mcu, radio, fallback, data); + const bool written = file.write(data, sizeof(data)) == sizeof(data); + file.close(); + if (!written || !readFile(temporary, checked) + || memcmp(data, checked, sizeof(data)) != 0) return false; + if (settings_fs->exists(backup) && !settings_fs->remove(backup)) return false; + if (settings_fs->exists(path) && !settings_fs->rename(path, backup)) return false; + if (!settings_fs->rename(temporary, path)) { + if (settings_fs->exists(backup)) settings_fs->rename(backup, path); + return false; + } + settings_fs->remove(backup); + saved_fallback = fallback; + return true; +} + +uint8_t readBatteryPercent(bool& valid) { + uint16_t samples[3]; + for (unsigned i = 0; i < 3; ++i) { + samples[i] = main_board->getBattMilliVolts(); + if (i != 2) delay(5); + } + if (samples[0] > samples[1]) { auto v = samples[0]; samples[0] = samples[1]; samples[1] = v; } + if (samples[1] > samples[2]) { auto v = samples[1]; samples[1] = samples[2]; samples[2] = v; } + if (samples[0] > samples[1]) samples[1] = samples[0]; + const uint16_t mv = samples[1]; + valid = mv >= 2000 && mv <= 5500; + if (!valid) return 0; +#if defined(NRF52_PLATFORM) && defined(NRF52_POWER_MANAGEMENT) + // Board ADC methods already return calibrated millivolts. + return configuredBatteryPercent(mv); +#else + return batteryPercent(mv, 3000, 4200); +#endif +} +RegulatorMode effective(bool mcu) { + RegulatorMode mode = requested[mcu ? 0 : 1]; + if (mode == RegulatorMode::Default) mode = mcu + ? main_board->defaultMcuRegulatorMode() : main_radio->defaultRegulatorMode(); + const uint8_t bit = mcu ? RECOVERY_MCU : RECOVERY_RADIO; + if (mode == RegulatorMode::Dcdc && (recovery().fallbackMask() & bit)) mode = RegulatorMode::Ldo; + return mode; +} +} + +const char* regulatorModeName(RegulatorMode mode) { + return mode == RegulatorMode::Dcdc ? "dcdc" : mode == RegulatorMode::Ldo ? "ldo" : "auto"; +} +uint8_t configuredRegulatorModes(bool mcu) { + if (!main_board || !main_radio) return 0; + return mcu ? main_board->mcuRegulatorModes() : main_radio->regulatorModes(); +} +RegulatorMode requestedRegulatorMode(bool mcu) { return requested[mcu ? 0 : 1]; } +RegulatorMode activeRegulatorMode(bool mcu) { + if (!main_board || !main_radio) return RegulatorMode::Default; + return mcu ? main_board->activeMcuRegulatorMode() : main_radio->activeRegulatorMode(); +} +const char* activeRegulatorModeName(bool mcu) { + const auto mode = activeRegulatorMode(mcu); + return mode == RegulatorMode::Default ? "unknown" : regulatorModeName(mode); +} +bool regulatorFallbackActive(bool mcu) { + return initialized && (recovery().fallbackMask() & (mcu ? RECOVERY_MCU : RECOVERY_RADIO)); +} +bool regulatorRecoveryAvailable() { return initialized && platformRecoverySupported(); } + +bool beginRegulatorSettings(MainBoard& board, Radio& radio, FILESYSTEM* fs) { + if (initialized) return true; + main_board = &board; main_radio = &radio; settings_fs = fs; + if (!board.mcuRegulatorModes() && !radio.regulatorModes()) return true; + uint8_t data[12]; + bool loaded = readFile(path, data); + if (!loaded && readFile(backup, data)) { + loaded = true; + settings_fs->remove(path); + settings_fs->rename(backup, path); + } + if (loaded) { + requested[0] = RegulatorMode(data[4]); requested[1] = RegulatorMode(data[5]); + saved_fallback = data[6]; + } + recovery().begin(platformRecoverySupported() ? platformResetKind() : ResetKind::Unknown, + saved_fallback); + initialized = true; + uint8_t active_dcdc = 0; + bool valid = false; + const uint8_t percent = readBatteryPercent(valid); + const uint32_t now = millis(); + const auto cpu_mode = effective(true), radio_mode = effective(false); + if (configuredRegulatorModes(true) && cpu_mode == RegulatorMode::Dcdc) active_dcdc |= RECOVERY_MCU; + if (configuredRegulatorModes(false) && radio_mode == RegulatorMode::Dcdc) active_dcdc |= RECOVERY_RADIO; + recovery().arm(active_dcdc, now, percent, valid); + fallback_saved = recovery().fallbackMask() == saved_fallback + || save(requested[0], requested[1], recovery().fallbackMask()); + bool okay = true; + if (configuredRegulatorModes(true)) { + if (!board.applyMcuRegulator(cpu_mode)) { + active_dcdc &= ~RECOVERY_MCU; + recovery().arm(active_dcdc, now, percent, valid); + okay = false; + } + } + if (configuredRegulatorModes(false) && !radio.configureBootRegulator(radio_mode)) { + active_dcdc &= ~RECOVERY_RADIO; + recovery().updateActiveDomains(active_dcdc); + okay = false; + } + last_service = last_battery = last_save = now; + return okay; +} + +void serviceRegulatorSettings() { + if (!initialized) return; + const uint32_t now = millis(); + if (uint32_t(now - last_service) < 1000) return; + last_service = now; + const uint8_t active_dcdc = + (activeRegulatorMode(true) == RegulatorMode::Dcdc ? RECOVERY_MCU : 0) + | (activeRegulatorMode(false) == RegulatorMode::Dcdc ? RECOVERY_RADIO : 0); + recovery().updateActiveDomains(active_dcdc); + if (uint32_t(now - last_battery) >= 30000) { + bool valid = false; + const uint8_t percent = readBatteryPercent(valid); + last_battery = millis(); + recovery().updateBattery(last_battery, percent, valid); + } + recovery().heartbeat(millis()); + if (!fallback_saved && uint32_t(now - last_save) >= 30000) { + last_save = now; + fallback_saved = save(requested[0], requested[1], recovery().fallbackMask()); + } +} + +bool handleRegulatorCommand(const char* command, char* reply, size_t capacity) { + const bool get = strncmp(command, "get ", 4) == 0; + const bool set = strncmp(command, "set ", 4) == 0; + if (!get && !set) return false; + const char* key = command + 4; + bool mcu; + size_t length; + if (strncmp(key, "mcu.regulator", 13) == 0) { mcu = true; length = 13; } + else if (strncmp(key, "radio.regulator", 15) == 0) { mcu = false; length = 15; } + else return false; + if (key[length] != 0 && key[length] != ' ') return false; + if (!initialized || !configuredRegulatorModes(mcu)) { + snprintf(reply, capacity, "Error: %s regulator selection unsupported", mcu ? "MCU" : "radio"); + return true; + } + const char* value = key + length; + if (get) { + if (*value) snprintf(reply, capacity, "Error: unexpected argument"); + else snprintf(reply, capacity, "> %s; active %s; fallback %s; crashes %u; recovery %s%s", + regulatorModeName(requestedRegulatorMode(mcu)), activeRegulatorModeName(mcu), + regulatorFallbackActive(mcu) ? "ldo" : "off", + unsigned(recovery().crashCount(mcu ? RECOVERY_MCU : RECOVERY_RADIO)), + regulatorRecoveryAvailable() ? "on" : "unsupported", + fallback_saved ? "" : "; fallback not saved"); + return true; + } + while (*value == ' ') ++value; + RegulatorMode mode; + if (strcmp(value, "auto") == 0) mode = RegulatorMode::Default; + else if (strcmp(value, "dcdc") == 0) mode = RegulatorMode::Dcdc; + else if (strcmp(value, "ldo") == 0) mode = RegulatorMode::Ldo; + else { snprintf(reply, capacity, "Error: use set %s.regulator auto|dcdc|ldo", mcu ? "mcu" : "radio"); return true; } + if (!regulatorModeSupported(configuredRegulatorModes(mcu), mode)) { + snprintf(reply, capacity, "Error: regulator mode unsupported by this hardware"); + return true; + } + const uint8_t domain = mcu ? RECOVERY_MCU : RECOVERY_RADIO; + const uint8_t fallback = recovery().fallbackMask() & ~domain; + const auto cpu = mcu ? mode : requested[0], rf = mcu ? requested[1] : mode; + if (!save(cpu, rf, fallback)) { + snprintf(reply, capacity, "Error: regulator setting save failed"); + return true; + } + requested[mcu ? 0 : 1] = mode; + recovery().clearDomain(domain); + fallback_saved = true; + snprintf(reply, capacity, "OK - %s regulator %s saved; reboot required", mcu ? "MCU" : "radio", regulatorModeName(mode)); + return true; +} + +void markRegulatorCleanReset() { + if (initialized) recovery().markCleanReset(); + else { + RecoveryPolicy policy(platformRecoveryRecord()); + policy.begin(ResetKind::Intentional, 0); + policy.markCleanReset(); + } +} + +}} // namespace mesh::power + +extern "C" void meshRegulatorCleanReset() { + // Intentional resets can happen before the settings/filesystem is ready. + mesh::power::markRegulatorCleanReset(); +} diff --git a/src/helpers/RegulatorSettings.h b/src/helpers/RegulatorSettings.h new file mode 100644 index 000000000..6aae490e9 --- /dev/null +++ b/src/helpers/RegulatorSettings.h @@ -0,0 +1,23 @@ +#pragma once +#include +#include "RegulatorMode.h" + +namespace mesh { +class MainBoard; +class Radio; +namespace power { +// Called once after the primary filesystem and board ADC are ready, before +// display/radio/wireless initialization. Choices never alter an active radio. +bool beginRegulatorSettings(MainBoard& board, Radio& radio, FILESYSTEM* fs); +void serviceRegulatorSettings(); +bool handleRegulatorCommand(const char* command, char* reply, size_t capacity); +const char* regulatorModeName(RegulatorMode mode); +uint8_t configuredRegulatorModes(bool mcu); +RegulatorMode requestedRegulatorMode(bool mcu); +RegulatorMode activeRegulatorMode(bool mcu); +const char* activeRegulatorModeName(bool mcu); +bool regulatorFallbackActive(bool mcu); +bool regulatorRecoveryAvailable(); +}} + +extern "C" void meshRegulatorCleanReset(); diff --git a/src/helpers/UsbLogging.cpp b/src/helpers/UsbLogging.cpp index 3f09da4fe..1795d738e 100644 --- a/src/helpers/UsbLogging.cpp +++ b/src/helpers/UsbLogging.cpp @@ -35,6 +35,9 @@ #if defined(NRF52_PLATFORM) && defined(USE_TINYUSB) #include #endif +#if defined(NRF52_PLATFORM) + extern "C" void meshRegulatorCleanReset() __attribute__((weak)); +#endif #if MESH_ESP32_HWCDC_SESSION_GUARD #include "UsbAsciiBinarySwitch.h" #endif @@ -1907,6 +1910,7 @@ extern "C" void meshTinyUsbCdcLineStateChanged(uint8_t instance, bool dtr, cdc_line_coding_t coding; tud_cdc_get_line_coding(&coding); if (coding.bit_rate == 1200) { + if (meshRegulatorCleanReset) meshRegulatorCleanReset(); TinyUSB_Port_EnterDFU(); } } else if (instance == 0) { diff --git a/src/helpers/WebConfigKeys.h b/src/helpers/WebConfigKeys.h index 41f672394..3cb773556 100644 --- a/src/helpers/WebConfigKeys.h +++ b/src/helpers/WebConfigKeys.h @@ -21,6 +21,7 @@ static const char* const WC_ALLOWED_SET_KEYS[] = { "name", "bluetooth.name", "bluetooth.mac", "bluetooth.stealth", "lost.reply", "lat", "lon", "radio", "tx", "af", "rxdelay", "txdelay", "cad", "radio.rxgain", "radio.fem.rxgain", "radio.fem.txgain", "radio.rxps", "powersaving", + "mcu.regulator", "radio.regulator", "repeat", "display.mode", "display.timeout", "display.usb.mode", "display.usb.timeout", "display.inbox", "display.rotation", @@ -70,7 +71,9 @@ static inline bool wcSetKeyRequiresReboot(const char* key) { return key != NULL && (wcIsEspNowChannelKey(key) || strcmp(key, "bluetooth.mac") == 0 - || strcmp(key, "bluetooth.stealth") == 0); + || strcmp(key, "bluetooth.stealth") == 0 + || strcmp(key, "mcu.regulator") == 0 + || strcmp(key, "radio.regulator") == 0); } // The admin password maps to the top-level `password` command, not a setter, so diff --git a/src/helpers/esp32/WebConfigHtml.h b/src/helpers/esp32/WebConfigHtml.h index f3f338771..7749d0c36 100644 --- a/src/helpers/esp32/WebConfigHtml.h +++ b/src/helpers/esp32/WebConfigHtml.h @@ -1,2342 +1,2393 @@ // Auto-generated by scripts/generate_webconfig_html.py from webui/index.html // DO NOT EDIT - edit webui/index.html instead. // Compressed with Google Zopfli 0.4.3 (gzip, 1000 iterations). -// shipped-page-sha256: eed300a11cfd1c8189a019fa0d0c86494a4f5d01fd2cb1389e7442ba47186934 +// shipped-page-sha256: 0b2b7a4d465cf0477af8cc72467bcc7333da8ac4aaeb46751749a2a3cf36c35b #pragma once #include #include -const uint32_t WEBCONFIG_HTML_GZ_LEN = 36687; -const char WEBCONFIG_HTML_ETAG[] = "\"c172e083598cfce6\""; -const char WEBCONFIG_HTML_VERSION[] = "d95298e4b80e7b69"; +const uint32_t WEBCONFIG_HTML_GZ_LEN = 37504; +const char WEBCONFIG_HTML_ETAG[] = "\"5194a9a141a20891\""; +const char WEBCONFIG_HTML_VERSION[] = "e2dd5b7614e4cf85"; const uint16_t WEBCONFIG_HTML_LOADER_LEN = 462; const uint16_t WEBCONFIG_HTML_SUCCESS_LEN = 65; const uint8_t WEBCONFIG_HTML_LOADER[] PROGMEM = { - 0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x75,0x52,0x47,0x77,0x9c,0x30, - 0x10,0xfe,0x2b,0x8a,0x2b,0xda,0x82,0x71,0x37,0x45,0x9b,0xc2,0xcb,0x29,0xbd,0x9f, - 0x85,0x18,0x8c,0x5e,0xb4,0x1a,0xde,0x30,0x2c,0x6e,0xfc,0xf7,0x64,0x5b,0x7a,0xe6, - 0x32,0xbd,0x7f,0xd9,0xa3,0x12,0x0d,0xdf,0x36,0x20,0x6a,0x9e,0xbb,0x59,0x36,0x07, - 0xd6,0xc2,0xd4,0x9a,0x5a,0x60,0xd5,0x71,0x35,0xbd,0xda,0xd8,0xbc,0x9e,0x83,0x5a, - 0x58,0xe8,0x1b,0x24,0x16,0x06,0x3d,0x83,0x67,0xb5,0xd3,0xdb,0x92,0x6b,0x55,0xc2, - 0xc2,0x1a,0x98,0xae,0x94,0x89,0xf5,0x96,0xad,0x76,0xd3,0xd6,0x68,0x07,0xea,0x78, - 0x67,0x96,0xb1,0x65,0x07,0xb3,0x57,0xd0,0xd6,0x39,0x12,0x88,0x2f,0x50,0xe4,0xe8, - 0x2b,0x7b,0x9d,0x1d,0xad,0x3d,0x59,0x81,0xe5,0xed,0xec,0x25,0xea,0xd2,0xfa,0x6b, - 0xf1,0x77,0xdc,0x41,0x0d,0xce,0xd9,0x26,0xcd,0x5a,0x43,0xb6,0xe1,0x59,0x50,0x75, - 0xde,0xb0,0x45,0x1f,0xc8,0xfb,0x85,0x26,0xe1,0x55,0x94,0x6e,0x4d,0xc2,0xa1,0x2e, - 0x37,0xf6,0x5c,0xf5,0xd6,0x97,0xd8,0x87,0x4f,0x0b,0x24,0xce,0xd1,0x33,0xa1,0x73, - 0x40,0x13,0xa3,0xf2,0x83,0x03,0x0f,0xbd,0xc8,0x03,0x39,0x61,0x65,0x0e,0x0e,0x5a, - 0xe0,0x8f,0x76,0x0e,0xd8,0xf1,0xaf,0xc5,0x4d,0xa8,0x97,0x99,0x81,0x1c,0x26,0x71, - 0xf4,0x9d,0x64,0x5a,0x01,0x9b,0x3a,0xd8,0x39,0xea,0xec,0xe3,0x85,0x2a,0xe3,0xf3, - 0x93,0xf8,0x0a,0xce,0x8a,0xab,0x08,0x2e,0x8b,0x8b,0x78,0x67,0x62,0x1e,0xdf,0xb7, - 0xf6,0xda,0x6b,0x97,0x98,0x70,0x2d,0x0c,0xc9,0xfd,0x20,0x43,0xae,0xc1,0xff,0x2c, - 0x4c,0xf2,0xde,0x56,0x01,0x85,0xf8,0x55,0x12,0x70,0x47,0x5e,0x50,0xc8,0x70,0xc3, - 0x81,0x4c,0x57,0xf6,0x96,0x35,0x77,0xad,0x52,0xea,0x2c,0x8a,0xe5,0xbd,0x43,0xa3, - 0x97,0x69,0x21,0xc1,0x7a,0xb7,0x74,0x93,0xe4,0x3b,0xe7,0x06,0xae,0x09,0x7b,0xf1, - 0x9c,0x08,0x29,0xd8,0x61,0xd2,0xbe,0xad,0x80,0x44,0xa5,0xad,0x83,0x72,0x47,0xfe, - 0xd5,0xba,0x59,0xb5,0x66,0x69,0x1c,0x68,0xda,0x6e,0xcc,0xab,0xbe,0x8d,0x52,0x6a, - 0x59,0x72,0x33,0x53,0x5a,0xa2,0xe9,0xe6,0xe0,0x39,0xc4,0x06,0x7c,0x20,0x7f,0xea, - 0x3d,0x59,0x86,0xa0,0xf9,0xc5,0x62,0x1c,0xb6,0xb0,0xbc,0xd2,0x8f,0x3e,0xf0,0xff, - 0x3e,0xe3,0xb1,0xcf,0x4e,0xe5,0x2f,0x07,0x5f,0x6e,0x35,0x39,0x8f,0xa2,0x91,0x97, - 0x29,0xb8,0x16,0xc4,0x8f,0xba,0x4b,0x5c,0xac,0x2e,0x93,0x6f,0xf1,0xf6,0xc9,0xeb, - 0xc2,0x81,0x60,0x5c,0xfd,0xf9,0x27,0x44,0x12,0xb1,0x33,0x86,0xf1,0x4e,0x28,0xde, - 0xc3,0xca,0xc1,0x28,0x08,0x98,0x6e,0xc3,0x9d,0x41,0x0e,0xeb,0xb3,0x0d,0x32,0x90, - 0xd9,0xd1,0x06,0x42,0xdf,0x00,0x31,0xa1,0xb8,0x6f,0xf8,0x02,0x00,0x00, + 0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x75,0x52,0x47,0x77,0xdb,0x30, + 0x0c,0xfe,0x2b,0x6c,0xa6,0xe8,0xed,0xec,0x44,0xa2,0x3b,0xf4,0x7a,0xea,0xde,0x67, + 0x9a,0x82,0x2c,0xbe,0xd2,0x80,0x1e,0x04,0x59,0x59,0xfa,0xef,0x8d,0x57,0x77,0x70, + 0xc1,0xde,0x5f,0xf2,0x24,0x23,0x27,0x37,0x25,0xa8,0x42,0xe6,0x61,0x92,0xcc,0x41, + 0xac,0x72,0x85,0xe5,0x0a,0xc4,0xd4,0x92,0xf7,0x2f,0x36,0x36,0xb4,0x73,0x30,0x0b, + 0x0f,0x4d,0x49,0x2c,0xca,0x11,0x0a,0xa0,0x98,0x9d,0xc6,0x67,0x52,0x98,0x0c,0x16, + 0xde,0x41,0x7f,0xa5,0xf4,0x3c,0x7a,0xf1,0x36,0xf4,0x2b,0x67,0x03,0x98,0xf1,0xce, + 0x24,0x11,0x2f,0x01,0x26,0x6f,0xa0,0x2a,0x52,0x62,0x50,0xdf,0x60,0x9a,0x12,0xe6, + 0x7e,0x96,0x0c,0xd7,0x9e,0x64,0x4a,0xd9,0xcd,0xe4,0x35,0xd9,0xcc,0xe3,0x4c,0xfd, + 0x1b,0x77,0x50,0x40,0x08,0xbe,0x8c,0x93,0xca,0xb1,0x2f,0x65,0x12,0xe5,0x35,0x3a, + 0xf1,0x84,0x91,0xbe,0x5b,0x58,0x56,0x68,0x46,0xf1,0xd6,0xa4,0xc2,0x43,0x99,0x8d, + 0x3d,0x35,0x8d,0xc7,0x8c,0x9a,0xc1,0xf3,0x29,0xb1,0xa4,0x84,0xc2,0x14,0x02,0x70, + 0xcf,0x99,0xf4,0xe0,0x00,0xa1,0x51,0x69,0xa4,0x7b,0x62,0xdc,0xc1,0x41,0x05,0xf2, + 0xd9,0xcf,0x81,0x6a,0xf9,0xbd,0xb8,0x1b,0xd8,0x65,0x66,0xa4,0xdb,0xde,0xe5,0xe8, + 0x81,0x74,0x9c,0x83,0xb8,0x22,0xda,0x19,0xd6,0xfe,0xe9,0xc2,0xc0,0x51,0x96,0x9d, + 0x4e,0xcf,0xcf,0xc6,0x27,0x70,0xe2,0xf2,0x8b,0xd3,0x9d,0x9e,0x7b,0x7a,0x57,0xf9, + 0x19,0xda,0x70,0xe5,0x06,0x6b,0xa1,0xbd,0xba,0x6b,0xf5,0x40,0x0a,0xc0,0x5f,0x85, + 0x59,0xdf,0xf9,0x3c,0xe2,0x01,0x7d,0xd7,0x0c,0x52,0x33,0x2a,0x1e,0x08,0x5c,0x4b, + 0xa4,0xe3,0x95,0xbd,0x12,0x2b,0x75,0x65,0x8c,0x39,0x19,0x5d,0xea,0xbb,0x40,0xce, + 0x2e,0xd3,0x06,0x0c,0xeb,0xdd,0xe2,0x4d,0x12,0xd6,0x21,0xb4,0x52,0x30,0x35,0xea, + 0x25,0x33,0x71,0xb4,0x23,0x6c,0xb1,0xca,0x81,0x55,0x6e,0x7d,0x80,0x6c,0x47,0xff, + 0xd3,0xba,0x5c,0xb5,0x16,0xed,0x02,0x58,0xde,0x6e,0x2c,0xab,0xbe,0xa5,0x31,0x66, + 0x59,0x72,0x33,0x53,0x9c,0x91,0xab,0xe7,0x80,0x32,0xa0,0x12,0x30,0xd2,0xbf,0xf4, + 0x86,0xbd,0x40,0x54,0xfe,0x66,0x71,0x81,0x2a,0x58,0x5e,0xe9,0x67,0x1f,0x78,0xbc, + 0x4f,0xb7,0x8b,0xc9,0xb1,0xfe,0xed,0xe0,0xcb,0xad,0x7a,0xa7,0xa3,0x51,0x07,0x75, + 0x0c,0xa1,0x02,0xf5,0xb3,0xee,0x12,0x17,0xab,0xcb,0xa4,0x5b,0xbc,0x7d,0x41,0x3b, + 0x0d,0xa0,0x84,0x56,0x7f,0xfe,0x05,0x91,0x2b,0xb5,0xd3,0x85,0xee,0xce,0x40,0x7d, + 0x84,0x95,0x43,0x48,0x31,0x08,0xdf,0x0c,0x76,0x5a,0xdd,0xae,0xcf,0xd6,0xea,0x48, + 0x27,0xc3,0x0d,0x84,0x7e,0x00,0x50,0x58,0x21,0xa2,0xf8,0x02,0x00,0x00, }; const uint8_t WEBCONFIG_HTML_GZ[] PROGMEM = { 0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0xac,0x3a,0x77,0x9f,0xb2,0x38, 0xb7,0xff,0xfb,0x29,0x78,0xc7,0x5b,0xc6,0x7d,0xc5,0x05,0x04,0x75,0x60,0xe7,0xb9, 0xbd,0xf7,0xde,0x4b,0x80,0x83,0xe6,0x0e,0xed,0x97,0x44,0x9d,0x59,0x7e,0xcf,0x77, - 0xbf,0x39,0x91,0x68,0x20,0x38,0xeb,0xf6,0x1d,0x4d,0x3b,0x39,0xbd,0xc5,0xef,0x7e, + 0xbf,0x39,0xc4,0x68,0x20,0x8c,0xeb,0xf6,0x1d,0x4d,0x3b,0x39,0xbd,0xc5,0xef,0x7e, 0xf5,0x87,0x7f,0xf3,0x07,0xff,0xf8,0x6f,0x7f,0xfb,0x47,0xce,0x41,0x54,0xe5,0x97, 0xd9,0x77,0xf8,0xe1,0x94,0xa4,0xde,0xbf,0x3e,0x41,0xfd,0x84,0x13,0x40,0x72,0xf9, 0x51,0x81,0x20,0x4e,0x76,0x20,0x8c,0x83,0x78,0x7d,0x3a,0x8a,0xc2,0xdd,0x3d,0xe9, 0xe9,0x9a,0x54,0xf0,0xfa,0x74,0xa2,0x70,0x6e,0x1b,0x26,0x9e,0x9c,0xac,0xa9,0x05, - 0xd4,0x72,0xdb,0x99,0xe6,0xe2,0xf0,0x9a,0xc3,0x89,0x66,0xe0,0xaa,0xc1,0xd2,0xa1, - 0x35,0x15,0x94,0x94,0x2e,0xcf,0x48,0x09,0xaf,0xfe,0xd2,0xa9,0xc8,0x3b,0xad,0x8e, - 0xd5,0x6d,0x42,0x03,0x72,0x0b,0x2a,0x5e,0xb3,0xe6,0x04,0x0c,0x6f,0x12,0x54,0x94, - 0xf0,0xe5,0xaf,0x80,0x1f,0xfe,0xa0,0x61,0xe0,0xfc,0x41,0x53,0x17,0x74,0xff,0xdd, - 0xb7,0x6a,0x5a,0x2e,0x73,0xf1,0x81,0x9f,0x31,0x6b,0x1a,0xd1,0xcd,0x5c,0x37,0xdd, - 0xc7,0xf3,0x22,0x2c,0x36,0xc5,0x2e,0x71,0x5c,0x37,0x23,0x2c,0x97,0xe3,0xa2,0xc0, - 0x01,0xad,0xdf,0xe2,0xb9,0x4f,0x82,0xf5,0xda,0xc3,0x61,0x75,0x14,0xf1,0x7c,0xb3, - 0xd9,0xae,0x77,0x04,0x87,0x25,0xad,0x21,0x9e,0x43,0x00,0x5b,0x80,0x44,0x02,0x22, - 0x59,0x16,0xcf,0x83,0x74,0x9b,0xc3,0x4b,0xe2,0xa8,0xa1,0x02,0xa0,0x81,0x35,0x08, - 0x2b,0x7f,0xc9,0x23,0x35,0x02,0xc6,0xe2,0x79,0xbe,0x09,0xa3,0x30,0xc2,0xe1,0x99, - 0xb0,0x3a,0x9e,0x67,0xbb,0xdd,0xd6,0x27,0x08,0x2b,0x3b,0xd0,0x56,0xc2,0x86,0x22, - 0x28,0xb6,0x17,0x4c,0x10,0xcf,0x1b,0x5e,0xea,0x72,0x3c,0x90,0x07,0x39,0xe0,0x14, - 0x3f,0x90,0xbc,0x39,0xc7,0x9e,0xe3,0xb7,0xef,0xce,0x5a,0xfe,0xcf,0xf6,0x29,0x79, - 0xf6,0x37,0xcb,0x60,0xb7,0x0c,0xa3,0xe5,0xca,0xdb,0x2d,0x92,0xd9,0xd7,0xd9,0xef, - 0x56,0x90,0x53,0xe2,0x3c,0xb7,0x0c,0x0a,0x60,0xdc,0xcd,0x9a,0xb2,0x61,0x92,0xa1, - 0x07,0xa8,0x20,0xce,0x09,0x7b,0x5b,0x74,0x03,0xc6,0xf8,0x9e,0x1f,0xf9,0x99,0x66, - 0x8c,0x62,0x86,0x1f,0xa4,0x57,0xde,0xc0,0x06,0xd2,0x22,0xb8,0xf2,0x66,0x97,0xbe, - 0xec,0x48,0x7a,0xe3,0x4d,0x40,0xd6,0x61,0x18,0x5c,0x79,0x13,0x92,0x97,0xb0,0x40, - 0x4e,0xf6,0xe4,0x05,0xeb,0x20,0x5f,0x13,0x83,0x3c,0x3f,0x94,0xf0,0x83,0x01,0x85, - 0x6b,0x12,0x6e,0xa2,0xcd,0x7d,0x0a,0xbd,0x25,0xfe,0xbb,0x0a,0x91,0xba,0xaf,0xb3, - 0x6f,0xba,0xb4,0x79,0x77,0x39,0xfd,0x9e,0xd6,0xfb,0x38,0x6d,0x58,0x0e,0xcc,0x95, - 0x33,0x49,0x45,0xd8,0x9e,0xd6,0xb1,0xf7,0x75,0x86,0x5a,0xdb,0xb9,0x67,0x48,0xdf, - 0xa8,0x70,0x05,0xbc,0x0b,0xdc,0x0d,0x2e,0xc9,0xff,0xef,0xc8,0x45,0xec,0x7b,0xde, - 0x6f,0x7e,0x9d,0xa5,0x4d,0xfe,0xd1,0x15,0x4d,0x2d,0xc7,0x51,0xfb,0xfe,0xad,0xbf, - 0x0a,0x23,0x87,0x7f,0x70,0x01,0x95,0x7b,0xa4,0x4b,0x97,0xb4,0x6d,0x09,0xee,0x65, - 0x62,0xf9,0xf4,0x0f,0xb0,0x6f,0xc0,0xf9,0xa7,0x3f,0x7b,0x5a,0xfe,0x7d,0x93,0x36, - 0xa2,0x59,0x72,0x52,0x73,0x97,0x03,0xa3,0x45,0x92,0x92,0xec,0x6d,0xcf,0x9a,0x63, - 0x9d,0xc7,0x27,0xc2,0x9e,0x91,0xa5,0x8b,0x44,0xb1,0x5c,0x8d,0x15,0x13,0x17,0x49, - 0x4b,0xf2,0x5c,0xe2,0xeb,0xca,0xd3,0xa2,0xa9,0xe2,0x17,0xaf,0x7d,0x4f,0x50,0x97, - 0x8b,0xb2,0x39,0xbb,0xef,0xf1,0x81,0xe6,0x39,0xd4,0x12,0x73,0x5f,0xe1,0xa4,0xf0, - 0x8d,0xfd,0xad,0xdc,0xa4,0x86,0x67,0xa0,0xfb,0x83,0x88,0x37,0x11,0x12,0x17,0x98, - 0x5b,0x42,0x7b,0x4b,0xa2,0x28,0x16,0x4c,0xa2,0x58,0x34,0xac,0x8a,0x8f,0x6d,0x0b, - 0x2c,0x23,0x1c,0x92,0x12,0x84,0x00,0xe6,0xf2,0x96,0x64,0xc8,0xbb,0x95,0x17,0x41, - 0x65,0xa2,0x8a,0x02,0x5e,0x68,0x3e,0x06,0x81,0x64,0xbf,0x14,0x84,0xc4,0x14,0x2f, - 0x8d,0x0b,0xca,0xb8,0x40,0xa1,0x96,0x79,0x77,0xd9,0xe2,0x8a,0xa6,0x45,0x76,0x93, - 0xce,0x80,0x81,0x5a,0xb0,0x90,0x07,0x80,0xe4,0xc0,0xba,0x9c,0xf2,0xb6,0x24,0x1f, - 0x71,0x51,0xc2,0x7b,0x42,0x4a,0xba,0xaf,0x5d,0x2a,0xa0,0xe2,0x71,0x06,0xb5,0x00, - 0x96,0xec,0x49,0x1b,0xe3,0x0d,0x9a,0x3f,0xb1,0x8f,0xb7,0xfa,0x1b,0x39,0x63,0xf1, - 0x15,0x95,0x73,0x91,0xf4,0x02,0xef,0xf9,0x88,0x6a,0xc2,0x9b,0x92,0xe6,0x8e,0xda, - 0xa3,0xf4,0x49,0x32,0xbb,0xe1,0x54,0xd0,0xa6,0x8e,0xb9,0xa0,0xd9,0xdb,0x47,0xa2, - 0xf0,0x4c,0xbe,0x97,0x92,0xc8,0xe1,0x5d,0xde,0xa7,0xd1,0x73,0xf8,0x69,0xdf,0x21, - 0x6a,0x71,0xdd,0xd4,0xf0,0x75,0xb6,0x3a,0xa0,0x03,0xeb,0x2a,0x5a,0x5f,0xdc,0x53, - 0xec,0xe9,0x39,0x27,0xa7,0x27,0x83,0xed,0x88,0xa5,0xcd,0xb8,0xf3,0x81,0x0a,0x50, - 0xdc,0x05,0x09,0xf0,0xcc,0x48,0x7b,0x15,0x71,0x2f,0xe0,0x8b,0x68,0xae,0x93,0x50, - 0x96,0xb4,0xe5,0x94,0xcb,0x5b,0x52,0x92,0xef,0x41,0xf3,0xb5,0x84,0x42,0xc4,0xe4, - 0x28,0x9a,0xe4,0x8a,0x5c,0x62,0x5c,0xee,0xdb,0x32,0xbf,0xf2,0x0f,0x6d,0xe6,0xa5, - 0x7d,0xd7,0x6c,0x62,0x24,0xa7,0x47,0x1e,0xbf,0xbc,0x4c,0x31,0x14,0x0d,0x74,0x61, - 0x91,0xa1,0x91,0x59,0x71,0x10,0xc7,0xb6,0x33,0x4e,0xcd,0x8b,0x35,0xec,0xf2,0x75, - 0x7f,0x62,0xbe,0x23,0x51,0xe6,0x29,0x0e,0xd1,0xac,0xa9,0xbb,0x1b,0xaa,0x26,0x15, - 0xbb,0xf6,0x7d,0x80,0xdb,0xee,0x8a,0x9b,0x25,0xbb,0xde,0x1d,0x2c,0x46,0xb8,0xa3, - 0x11,0xcc,0x2c,0xdc,0x95,0x33,0xb1,0x91,0x4f,0xb2,0x23,0xe3,0x72,0xa6,0x6d,0xa8, - 0xd2,0x2f,0x04,0xe8,0x1e,0x2e,0x6c,0xf2,0x57,0xeb,0x64,0xa6,0x2c,0x7e,0xeb,0x49, - 0xbd,0x0e,0x94,0xd5,0xaf,0x9d,0x23,0x75,0xab,0xa6,0x6e,0x94,0xd8,0x96,0x7f,0x05, - 0x75,0xd9,0x2c,0x65,0x34,0x91,0x88,0x11,0xbe,0xbc,0x2e,0x68,0x2a,0xe3,0x03,0x0a, - 0xcf,0xd2,0x77,0x8d,0xf2,0x78,0xfe,0x21,0x5f,0x7c,0x97,0xdd,0x6b,0x12,0x14,0x7e, - 0xa8,0xd9,0x0d,0x5e,0x1a,0x46,0x99,0xf4,0x7f,0x15,0xa1,0x75,0x27,0xc3,0x64,0xaf, - 0xa3,0x9b,0xd0,0x6b,0x6f,0xce,0xcf,0x51,0x6a,0xa3,0x39,0x8e,0x86,0x24,0x51,0x47, - 0xcb,0xe9,0x3e,0xb3,0x27,0x4b,0x18,0x93,0x92,0x40,0x96,0x0d,0x40,0xcb,0xf5,0x77, - 0xed,0xb2,0xd5,0xb1,0x7e,0xa0,0x7d,0xc8,0xd5,0x4a,0x43,0x85,0x86,0x20,0x29,0x1f, - 0x7a,0x04,0x34,0xff,0xf0,0xbe,0x6a,0xea,0xbb,0x42,0x4b,0xa1,0xd1,0x67,0xdc,0xbf, - 0xc4,0x49,0x8f,0x42,0x68,0x95,0xf4,0x35,0x89,0x9e,0x79,0x0d,0x2a,0xaa,0xad,0x3d, - 0x4a,0x3b,0x68,0x7d,0x00,0x46,0x85,0x69,0x71,0xeb,0x55,0x34,0xb6,0x39,0xef,0x6a, - 0x73,0xa8,0xa1,0x8e,0x85,0x22,0xce,0x8e,0xb4,0x71,0x88,0xdd,0xaa,0xa9,0xa7,0x65, - 0x62,0x47,0x8f,0xbb,0x7c,0x96,0x10,0x8b,0x6e,0xc4,0x86,0xb5,0x62,0x43,0xe1,0x94, - 0x24,0x85,0xf2,0xca,0xee,0xb4,0x6c,0xb2,0x37,0x93,0xa4,0x60,0x92,0xa4,0x21,0xac, - 0xb0,0x07,0x25,0x75,0xbf,0x16,0x9d,0xe9,0x81,0xf0,0xb0,0xcd,0x3e,0x23,0x2c,0x28, - 0x2c,0x68,0xdd,0x1e,0xc5,0x7f,0x88,0x8f,0x16,0x5e,0xd1,0xf1,0xfd,0xd7,0xd2,0x98, - 0x68,0x09,0xe7,0x67,0xc9,0xb0,0xc1,0x64,0x7d,0xac,0x52,0x60,0x83,0x29,0xa8,0x08, - 0x2d,0xff,0x6b,0xc9,0xa1,0x84,0x4c,0x74,0x33,0xa5,0xf3,0x2a,0x84,0x6b,0xf6,0xa3, - 0x8b,0x51,0x51,0xea,0xae,0xf4,0x50,0x53,0x6d,0x96,0xde,0xf1,0x28,0xb3,0x1f,0xe7, - 0x9d,0xd0,0x9f,0x35,0x47,0x81,0x4b,0x97,0x20,0xe2,0x38,0xdf,0x7e,0xe3,0x7c,0x79, - 0xc5,0x4b,0x63,0x87,0x4b,0x56,0x70,0x87,0xfe,0xcd,0x3f,0x38,0xdf,0x37,0x4d,0xe5, - 0x36,0xb5,0x5b,0x34,0xd9,0x91,0x3b,0xcf,0x9c,0xe6,0x70,0x26,0x1f,0xdc,0xe5,0x19, - 0x6b,0xca,0xd2,0xa1,0xb5,0x93,0x91,0x56,0xd0,0x13,0x38,0xfc,0x00,0x20,0x16,0xce, - 0x37,0xdf,0x5e,0xd8,0x17,0xab,0x13,0x3d,0xfd,0x97,0x41,0x37,0xed,0x6d,0x06,0x6a, - 0xe2,0x39,0xf8,0x2f,0x06,0xd3,0x8b,0xc7,0xa9,0xe8,0xfb,0xb3,0xbc,0x84,0xb3,0x7d, - 0xba,0xbc,0x9d,0x70,0x82,0xe8,0x37,0x97,0x2a,0x53,0x68,0x09,0x83,0x5a,0x2c,0x7a, - 0x99,0xad,0x72,0xca,0xc4,0x47,0x7f,0xe9,0x65,0x30,0x75,0x29,0x26,0xb4,0xa8,0x83, - 0xed,0xdb,0xfe,0xaa,0x68,0x7b,0x46,0xf3,0x04,0xff,0xb8,0x02,0x2a,0x39,0x23,0x00, - 0x8f,0x1c,0xab,0x9a,0xc7,0x0c,0x5a,0x20,0xe2,0x19,0x3d,0x94,0x5b,0xd0,0xb2,0x5c, - 0x56,0xb4,0x96,0x7e,0xec,0xd9,0xc7,0x54,0x63,0xe9,0x17,0x6c,0xb1,0x50,0x1e,0x21, - 0xe8,0xe3,0xc4,0x8f,0x17,0x85,0xa9,0x13,0xf7,0x24,0x8c,0x1a,0x7d,0x21,0xc9,0x41, - 0xc4,0x3f,0xa7,0xeb,0xa1,0x04,0x06,0xf5,0xeb,0x53,0xcb,0x0a,0xaf,0x96,0x25,0x9d, - 0xd0,0x4c,0x52,0xad,0x43,0x52,0xb0,0xb1,0x9d,0x04,0x5e,0xeb,0x28,0x29,0x74,0xbd, - 0xb2,0x23,0xb8,0xfe,0x00,0x7e,0xbf,0x81,0x32,0x52,0x17,0x3c,0xc4,0x5b,0x52,0x77, - 0x8f,0x65,0x1c,0x13,0xb9,0x8a,0x82,0x41,0x1e,0xcf,0xd8,0x0c,0x63,0x47,0xa4,0xc6, - 0xde,0x41,0x82,0x2b,0xeb,0xb7,0x6e,0xec,0x72,0x7b,0x91,0xaa,0xef,0x5a,0x58,0x9e, - 0x6d,0xb9,0xb6,0x9f,0x31,0xf5,0x7c,0x36,0x64,0xd9,0x85,0xc6,0x1c,0xb2,0x86,0x11, - 0x95,0xf6,0xc9,0xdb,0x80,0x95,0xf4,0xc2,0x97,0x82,0x1f,0xab,0xce,0x76,0x55,0xa3, - 0x4c,0x4b,0xee,0x64,0xcd,0xd9,0x8e,0x4e,0x2a,0xfd,0xc5,0xa5,0x2f,0xab,0x42,0xc7, - 0x93,0x61,0x7e,0xd8,0x9e,0x8d,0x83,0x36,0xdb,0xb8,0x60,0x20,0xb2,0x03,0x02,0x43, - 0xad,0xd4,0x07,0x7a,0x09,0xdf,0x87,0xe8,0xc8,0x0f,0x7e,0x90,0x90,0x6f,0x6b,0x9b, - 0x40,0x9d,0xe7,0xe7,0x1f,0x14,0x12,0xd6,0x39,0xb4,0xf8,0x70,0xfb,0xd2,0x3b,0x56, - 0x72,0x76,0x53,0x10,0x67,0x80,0xda,0x4e,0xba,0x5f,0x30,0xd3,0x57,0x90,0x95,0x0e, - 0x39,0xa9,0x15,0x36,0x3e,0x8d,0x84,0xe6,0x51,0xda,0x87,0x09,0xf1,0x51,0xa2,0x62, - 0xb1,0x8a,0x94,0x96,0x40,0xa7,0x52,0x4e,0xb1,0x2f,0xbb,0x6b,0xda,0xce,0xa0,0x24, - 0xe8,0x0b,0x93,0x0b,0xdd,0x61,0x70,0x33,0x80,0x00,0x03,0xad,0xa1,0xf7,0x78,0xb0, - 0xe7,0xe5,0xf5,0x38,0x49,0xb9,0xf4,0x38,0x02,0x92,0x06,0x0b,0x1d,0xf1,0x21,0x15, - 0xec,0x16,0x36,0x34,0x20,0xf5,0x5d,0x5b,0x92,0x6d,0x83,0x08,0xf6,0x38,0x01,0x92, - 0xd6,0x1c,0xc4,0x30,0x95,0xb0,0x9c,0x92,0x95,0x79,0xa3,0x87,0xed,0x01,0xad,0xfc, - 0x88,0x27,0xfd,0x35,0x2e,0x9c,0xa0,0x16,0xdc,0xa4,0xe4,0x18,0xa7,0x50,0x34,0x0c, - 0x3a,0x2d,0xb9,0xa7,0xa7,0xc4,0x46,0xa2,0x0f,0xb0,0x09,0x6a,0x2f,0x7e,0xd1,0xe4, - 0xed,0x0c,0x47,0x31,0xf2,0x80,0xd8,0x55,0x18,0xa1,0x16,0x49,0x06,0x8c,0x30,0x33, - 0xf9,0x19,0x67,0x07,0xc8,0xde,0x20,0xff,0xf5,0xd1,0x4e,0x53,0xd0,0x0a,0xa7,0xf7, - 0x6a,0xfc,0x15,0x6a,0x81,0x8f,0x0a,0xdb,0xa7,0x3b,0xa9,0xa8,0xaf,0x6a,0x45,0x6b, - 0x95,0x98,0x3f,0xaa,0xbe,0x43,0x5f,0xdb,0x93,0x61,0xbb,0x8d,0x4f,0x8b,0xe2,0x99, - 0xa9,0xec,0xfe,0xc6,0x2e,0x91,0x2c,0x4f,0x9c,0x4c,0x92,0x3d,0xf6,0x46,0x2a,0x9b, - 0x30,0x89,0x5c,0x71,0xc8,0xba,0x07,0x6a,0xad,0xf1,0xb9,0x58,0x32,0x87,0xa4,0x25, - 0xe4,0x9d,0x56,0xdb,0x55,0xa4,0x31,0xca,0xa1,0x20,0xc7,0x52,0x0c,0xaf,0xa9,0x3a, - 0x2b,0xe8,0x68,0x1a,0x37,0x7d,0x4a,0x24,0x65,0x84,0x17,0x8f,0xf9,0xae,0xac,0xfa, - 0xd1,0x8a,0x52,0x47,0x63,0x5b,0xaf,0x07,0x4e,0x14,0x39,0x7a,0x02,0x26,0x68,0x46, - 0x4a,0x57,0xc9,0x34,0xf6,0xaf,0x08,0xac,0x9a,0x41,0x24,0xb8,0x97,0x92,0x34,0x6f, - 0x0b,0xc7,0x1f,0x65,0x24,0x9a,0x67,0x7a,0x83,0x86,0x08,0x8c,0x3d,0x02,0x52,0x6e, - 0xfb,0x1c,0xa6,0xda,0x81,0x0e,0x8c,0x9c,0x20,0x25,0xec,0x66,0xf2,0x05,0x7d,0x87, - 0xfc,0x62,0x62,0x5e,0xc2,0x14,0x5b,0xbc,0xa4,0x4f,0x8c,0x6f,0xcd,0x84,0xc0,0xfb, - 0xbc,0x51,0x81,0xf1,0x71,0xba,0xb8,0xba,0x69,0xa4,0xef,0xf5,0x2a,0xe9,0x48,0xde, - 0x65,0xcf,0x6a,0xf8,0x6b,0x07,0xea,0xd3,0x33,0x27,0x05,0xb8,0x84,0x01,0x71,0x95, - 0xdf,0xe9,0xf3,0x72,0x99,0x26,0x69,0x81,0xa2,0xeb,0xb8,0x1b,0xa5,0xa5,0xe4,0x6e, - 0x84,0xad,0xf8,0x61,0x18,0xa6,0x8c,0x35,0x27,0xed,0xc6,0x2e,0xde,0x58,0x5c,0xf1, - 0xb6,0x8f,0x53,0x38,0x59,0x36,0xa2,0x7b,0xbc,0x66,0xb4,0x9a,0x3b,0x56,0xd5,0x26, - 0xd7,0x7b,0xb0,0xf2,0x22,0xf1,0x50,0xfa,0xb1,0xfb,0x21,0x28,0xd3,0xf4,0xb4,0xb4, - 0x2c,0xcd,0x79,0xcf,0x0a,0x65,0x5b,0xcf,0x52,0xfb,0x9f,0xd1,0x48,0xf9,0x11,0x7d, - 0xb8,0x10,0xaa,0x1e,0xc1,0x5f,0xd6,0x52,0x14,0xc4,0x82,0xd0,0x72,0x79,0xf9,0x2a, - 0xb9,0x9b,0xfd,0xa2,0x56,0xa3,0xa0,0x9e,0x09,0x15,0x8f,0x40,0xc5,0xb4,0x7a,0x1a, - 0xac,0x95,0x79,0x0b,0x5a,0x02,0xff,0x59,0x35,0x45,0xe8,0x99,0x35,0x85,0xd6,0x10, - 0x84,0x3b,0xed,0x9c,0x3f,0x57,0x5c,0x65,0xa1,0xc1,0x15,0xc4,0x64,0x9a,0xa3,0xb1, - 0x7d,0xc4,0xbb,0xfe,0x7c,0x65,0x41,0x34,0x86,0x7a,0xbe,0xb3,0xaf,0xd1,0xfb,0x78, - 0x37,0x4e,0x91,0xd1,0x71,0x3c,0x92,0x98,0x65,0xa4,0x3e,0x11,0xde,0xd9,0xf9,0x53, - 0x84,0x0e,0x7f,0x40,0xb2,0xbc,0xac,0x06,0xf1,0x78,0x01,0x61,0xc0,0x7c,0xa8,0x43, - 0x83,0x01,0x73,0x18,0xf2,0x87,0x1e,0x14,0x11,0x7a,0xa4,0x3b,0x3c,0x51,0x3c,0xf4, - 0x01,0x0b,0x9d,0xfd,0x85,0x8a,0xb8,0x24,0xd7,0x66,0xf7,0x10,0xa6,0xa7,0x36,0xa0, - 0x9b,0xe1,0xbd,0x57,0xb4,0x9a,0x28,0x3f,0xa7,0x04,0x43,0xd0,0xbc,0x22,0x65,0xd9, - 0x4d,0x24,0xc9,0x5c,0x4a,0xa3,0x25,0x35,0x94,0x3f,0xd6,0x03,0xdf,0x8f,0x51,0x9f, - 0xf6,0xef,0x62,0xb7,0x7f,0x03,0x90,0x39,0xa6,0x79,0x3d,0x86,0x04,0x17,0x5b,0xe8, - 0x3f,0xa9,0x3c,0xfe,0xe5,0x5f,0x2c,0x2c,0x33,0x75,0xc2,0x11,0xc2,0x73,0xfc,0x2a, - 0xd9,0xc3,0x85,0xea,0x9c,0xf6,0x3a,0x1c,0x46,0xa7,0xc3,0x4d,0x5a,0x83,0xce,0xa9, - 0xe7,0xec,0x94,0x4a,0x29,0x30,0x02,0xda,0x89,0xc6,0xe5,0xc6,0x0e,0x43,0xc6,0x7e, - 0x87,0x6a,0xf5,0xd0,0x97,0x59,0xc1,0x24,0xb0,0x04,0xa3,0x45,0x78,0x03,0x62,0x74, - 0x09,0xed,0xf4,0xbb,0x21,0x5c,0x8c,0x13,0x16,0xcc,0x37,0x36,0xa1,0x2e,0x0e,0x30, - 0xc7,0xbf,0xf1,0x55,0x7d,0x43,0xf7,0xf9,0xaf,0xcf,0xae,0x5c,0x59,0x5c,0xb3,0x98, - 0x70,0xb2,0xa0,0x79,0x1b,0xfa,0x66,0xd5,0x1d,0x7b,0xb4,0x29,0xfa,0x49,0x9a,0x6d, - 0x94,0x65,0x66,0xf9,0x11,0x4c,0x17,0x46,0xc9,0xad,0xd3,0xfd,0xe2,0x9d,0xce,0x9a, - 0xec,0x4b,0x3a,0xa3,0x21,0x61,0x66,0x82,0x72,0x94,0xf2,0x19,0xf3,0x43,0x17,0x6c, - 0x9a,0xd4,0xc8,0x9b,0x7a,0xb1,0xb3,0x32,0xaa,0x07,0x6b,0x12,0xc3,0x7b,0xe8,0x19, - 0xcd,0x00,0xac,0x54,0x6f,0x68,0x4d,0xa7,0x5f,0x2d,0xad,0x7b,0xd7,0x1a,0x98,0x35, - 0x6e,0x70,0x2b,0x72,0xd6,0x9f,0x59,0xb8,0x94,0xb5,0xdd,0x04,0xb4,0x8b,0x3c,0x52, - 0xd3,0xea,0xe2,0xf5,0x99,0xe3,0x73,0x07,0x41,0x10,0xe6,0xd0,0xba,0xc0,0xc7,0x77, - 0x48,0xa6,0x8a,0x03,0xf9,0x70,0xf1,0x06,0x1f,0x05,0x23,0x15,0x70,0x87,0x75,0xa2, - 0xe9,0x6e,0x5a,0xc4,0x1a,0x41,0x04,0x3c,0xaf,0x37,0x5e,0x0e,0xb2,0x9d,0x26,0xe9, - 0x00,0xc6,0x5c,0x64,0x44,0x37,0xce,0x10,0x06,0x9d,0x83,0x61,0xcf,0x08,0xa3,0x95, - 0xd1,0x09,0xf3,0x2f,0xbd,0x91,0xb7,0x53,0x67,0x69,0x98,0xc9,0xb4,0x47,0x3a,0x1b, - 0xc1,0xa8,0x10,0xf2,0x1e,0x89,0x0a,0xea,0xee,0xcf,0xbc,0x3e,0xae,0x4f,0x86,0x7d, - 0xdb,0x4f,0xe3,0xce,0xb4,0x1b,0x19,0x86,0xa9,0x29,0x0c,0x27,0x1f,0x7f,0x1b,0x94, - 0xeb,0xd0,0x99,0xfa,0xf9,0x2b,0x5a,0xb5,0x0d,0x13,0xa4,0x56,0xd1,0xaa,0x11,0x60, - 0x57,0x82,0x96,0x8f,0x7c,0x28,0xe9,0xd9,0x8d,0x9a,0x42,0x2a,0x75,0x99,0x7c,0x5f, - 0x10,0xc0,0xaa,0xce,0x75,0x45,0x11,0xcf,0xf3,0x2d,0x78,0x40,0x12,0x39,0xc8,0x69, - 0x15,0xcf,0x37,0xf9,0x36,0xdb,0x15,0x38,0x54,0xbf,0x07,0x88,0x76,0x64,0x53,0xa8, - 0xe1,0x9e,0xd5,0x72,0xb8,0xcd,0x82,0x0d,0xe0,0x10,0x18,0xc3,0xae,0xc4,0x36,0xdd, - 0x06,0x38,0x3c,0x13,0x5c,0x86,0x75,0xba,0x0e,0xfd,0xc1,0x7b,0xdf,0xdc,0x4b,0x3d, - 0xf0,0x83,0x01,0x45,0xa2,0x98,0x78,0xb8,0x9a,0x07,0x5e,0xb0,0x5b,0x07,0x13,0x8f, - 0x56,0xbd,0xdb,0x2a,0x48,0x45,0xcb,0x8f,0x78,0xf0,0xe0,0xf7,0x0f,0x7f,0xfc,0x57, - 0xf2,0xbb,0xfb,0xf7,0xb0,0x3f,0x96,0x84,0x8d,0xdf,0xff,0x9e,0xfe,0x92,0xa6,0x70, - 0xc9,0x98,0x1c,0xdc,0xf7,0x74,0x7b,0x11,0x44,0x98,0xa6,0x6e,0x8f,0x9e,0x1a,0xa3, - 0xa1,0xda,0xe2,0x1f,0x37,0xa7,0x0c,0x32,0x65,0x87,0x97,0xec,0xd5,0xd2,0x80,0x59, - 0x7f,0x7c,0xbb,0x3b,0x1d,0x4c,0xe3,0x08,0x30,0x99,0xd5,0x6f,0x89,0xcf,0xbd,0x93, - 0x94,0x40,0x08,0xe3,0xb0,0xe8,0x2e,0xb2,0x18,0xbe,0x77,0x7c,0xbd,0xfc,0xc0,0x01, - 0xdf,0x9b,0xdc,0xac,0xa4,0x5d,0x2f,0x54,0x53,0x9d,0xf1,0x94,0x7b,0x78,0x2c,0x84, - 0xef,0xcc,0xa6,0x9b,0xd5,0x65,0x18,0x8a,0xcb,0xf7,0xfd,0x8d,0x9f,0x8f,0x6c,0xce, - 0x96,0xd2,0x0d,0xdf,0xd5,0x2e,0x18,0x05,0x75,0x54,0xa4,0xc5,0x0d,0xc5,0x61,0x05, - 0xaa,0x27,0xcd,0x37,0x3e,0x85,0x96,0xd5,0x6a,0xb6,0x15,0x84,0xac,0xd7,0x6b,0xab, - 0x0d,0x86,0x04,0x58,0xb7,0x0f,0x13,0x4d,0x4d,0x31,0xc2,0xda,0x59,0x8d,0x22,0x0b, - 0xa9,0x89,0x57,0x62,0x51,0x8c,0x1e,0x89,0xe7,0xeb,0x3c,0x24,0x11,0xd1,0x67,0x9b, - 0x5b,0x33,0x58,0x6b,0x85,0xfb,0xa1,0x52,0x12,0xfb,0x67,0x22,0x83,0x7c,0x27,0xd1, - 0xbf,0x73,0xd1,0xdb,0xfa,0x27,0x25,0x5c,0x17,0xcd,0x31,0x3b,0x18,0x37,0x7c,0xc1, - 0x5f,0x31,0x98,0x69,0x67,0xcb,0xc0,0x55,0xbf,0x53,0xc0,0x97,0x38,0x37,0x65,0x40, - 0xde,0x62,0xf5,0xd7,0xc5,0x09,0xe3,0xa4,0xb3,0xca,0xaa,0xbc,0x27,0x08,0x5b,0x89, - 0xe3,0x25,0xab,0x6d,0xf9,0xc5,0x79,0x1a,0x88,0x14,0xad,0x7f,0x31,0x38,0xc5,0xa0, - 0xd5,0x00,0xb7,0x00,0xdb,0xdd,0x76,0xb0,0x0a,0x6c,0xc4,0x3f,0x39,0x31,0x3c,0xcf, - 0x3f,0x78,0x67,0x89,0x6d,0xb0,0x43,0x6a,0x6e,0xd7,0x5b,0xd0,0x2a,0x8a,0xa0,0xd2, - 0x8b,0xa4,0xce,0x0e,0x0d,0x9b,0x68,0x37,0xf7,0x9b,0x8d,0x87,0x95,0x5b,0x9f,0x47, - 0x1f,0xe6,0xc7,0xbd,0xdd,0x16,0xbe,0xdb,0x26,0x32,0x92,0x4d,0x85,0x25,0x1e,0x97, - 0x73,0xcb,0x30,0x3c,0x1d,0x16,0x96,0xa4,0x87,0x6e,0x0f,0xfc,0xb5,0x4f,0x8c,0x50, - 0x6f,0x1b,0xd1,0xf0,0xc1,0xcf,0x55,0xe9,0x6f,0x10,0x8e,0x7e,0x35,0x15,0x45,0x2a, - 0x9d,0xdc,0x4f,0xbf,0x6d,0x0c,0x2c,0x3e,0x25,0x1c,0x4a,0x6a,0x58,0x78,0xa4,0x2d, - 0xdc,0x52,0x78,0xbe,0x77,0x52,0xc3,0xf6,0xcc,0x60,0x17,0x79,0xba,0xbc,0x9d,0x67, - 0x05,0xac,0xa5,0xf3,0x1f,0xa9,0x5c,0x7f,0xdc,0x39,0x0e,0xe5,0x87,0xd9,0x8b,0xd5, - 0x8e,0x99,0xa8,0x5b,0xfb,0xf3,0xd4,0xfc,0x9d,0x4e,0x62,0xc7,0x65,0xd3,0xc1,0x84, - 0x53,0x0e,0x26,0x99,0xfd,0x9c,0x42,0x8d,0xef,0x47,0xa9,0xf9,0xdc,0x87,0x20,0x5d, - 0x13,0x53,0x26,0x2a,0xf7,0x74,0xd6,0xaa,0x86,0xf2,0x1c,0x83,0x4c,0x7d,0xde,0x49, - 0x4d,0x9b,0xd2,0x93,0x54,0x4f,0xee,0xd2,0x97,0x94,0x5c,0xcd,0x10,0x25,0xf3,0x33, - 0xbc,0xb5,0x7e,0x26,0xff,0xd1,0x5a,0xa6,0xef,0x6f,0xb9,0x21,0xf0,0x09,0xdb,0x9e, - 0xab,0x5d,0xb4,0x9e,0x78,0xd4,0xba,0x95,0x55,0x46,0xa9,0x3f,0xf0,0xc2,0x76,0xe9, - 0x7f,0x63,0x4c,0x32,0x33,0x9d,0xf1,0xe0,0xb9,0x3d,0xc9,0x08,0x03,0xe1,0x7e,0x82, - 0xcd,0xe0,0xc9,0x3c,0xf6,0x4c,0xf1,0x20,0x00,0x63,0x63,0x2c,0x19,0x9b,0xc1,0xa1, - 0x29,0xe5,0x46,0x2d,0x81,0xf0,0x25,0xda,0x6e,0xb6,0xc6,0x26,0xdd,0xa4,0xbf,0xef, - 0x7a,0xf6,0x4d,0x67,0x33,0x3f,0xd0,0xcc,0x7f,0x30,0x28,0x6d,0x86,0x72,0xb2,0x79, - 0x6e,0x07,0x29,0xcb,0x46,0x35,0x3a,0x76,0x34,0x52,0x3c,0xfa,0x34,0x1e,0xe1,0x31, - 0xfb,0x3d,0x22,0x1c,0xbd,0x47,0xe8,0xcd,0x59,0x51,0x75,0x3f,0x44,0x18,0x7a,0x48, - 0xab,0x9a,0x51,0x59,0x9f,0x95,0x84,0x5a,0x19,0x45,0xe0,0xef,0xfc,0xc2,0x52,0x64, - 0xdd,0xa4,0x50,0x39,0xbe,0x81,0x8a,0xb3,0x3a,0x68,0x62,0x8d,0x4b,0x86,0x69,0x2c, - 0x7a,0xb6,0xc1,0x91,0xb2,0xd6,0x22,0x27,0x2f,0xe9,0x36,0xdb,0x24,0x8f,0x87,0xc9, - 0x6b,0x1b,0x4a,0xd1,0xd8,0x5f,0x5a,0x2f,0xd7,0xd9,0xa1,0xef,0xea,0x61,0x04,0x91, - 0x72,0x52,0xcd,0x7d,0xd7,0x77,0xbe,0x71,0xcc,0x2d,0x8b,0x11,0x1a,0x76,0xaf,0x6e, - 0x5a,0xf8,0xc3,0x73,0xe7,0x4f,0x28,0xb6,0x5f,0xe8,0x57,0x2f,0x50,0x0d,0x8e,0xa7, - 0xa2,0xb6,0x1a,0x1c,0x37,0x3f,0xa2,0x68,0x8f,0xf1,0xcf,0xa8,0x80,0x33,0x60,0xe8, - 0x74,0xec,0x47,0xe8,0xf7,0x40,0xc4,0x69,0x10,0xad,0x3d,0x2b,0xc7,0x9f,0x4d,0x66, - 0x61,0xa1,0xea,0xf2,0x58,0x51,0xc9,0xc6,0x66,0xb5,0x6f,0x86,0x1e,0x3a,0x5f,0xa7, - 0xc1,0x6e,0xa4,0xf7,0x41,0xb1,0x49,0xc3,0x28,0xd1,0x2e,0xb7,0x00,0x8f,0x44,0x36, - 0xa8,0x29,0x6b,0x88,0x6c,0x73,0xc8,0x4a,0xea,0x0a,0xda,0xfe,0xe0,0x4f,0x45,0x0d, - 0x3e,0x62,0x47,0xc4,0x0e,0xcd,0x81,0xc5,0xfb,0x1b,0x74,0xe7,0x2d,0xcd,0xd5,0x0d, - 0x57,0xce,0xdc,0x2b,0x6f,0xfa,0x7a,0xe6,0x3a,0xbe,0x57,0x05,0xce,0x86,0xd2,0x91, - 0x0c,0xfe,0x7f,0x76,0x9e,0xb4,0xb9,0x6d,0x5c,0xc9,0xef,0xef,0x57,0x74,0x71,0xab, - 0x12,0xbb,0xd6,0xa2,0x2d,0x59,0x56,0x9c,0x71,0xac,0xa9,0x1c,0x73,0x78,0x37,0x3e, - 0x36,0xf6,0x5c,0x9f,0xb6,0x20,0x12,0xb2,0xf8,0x42,0x11,0x7c,0x00,0x14,0x5b,0xf3, - 0xeb,0xb7,0xbb,0x01,0x50,0xb4,0x28,0x2a,0xb4,0x9d,0xd9,0xfb,0xbd,0x99,0x91,0x85, - 0xb3,0xd1,0xdd,0xe8,0x1b,0x5a,0x49,0x6c,0x17,0x4b,0x7b,0xb3,0xef,0x4a,0xea,0xf1, - 0x0f,0xff,0x04,0x80,0xfc,0x0b,0xff,0x20,0x40,0x6a,0xfc,0x03,0x6b,0x69,0xc1,0x55, - 0xf8,0x47,0x83,0x51,0x04,0xce,0xea,0xe1,0xbf,0xb9,0x84,0xff,0x9d,0xba,0x3f,0x8d, - 0xb8,0x26,0x69,0x88,0xff,0x44,0x40,0xc1,0xfa,0xd3,0x88,0x58,0x3b,0x02,0x63,0xb5, - 0xfa,0x2c,0x4f,0xa3,0x55,0x14,0x23,0xb4,0xf5,0xc2,0x8a,0xa1,0x81,0xb5,0x60,0x22, - 0xca,0xd3,0x88,0x4f,0x11,0xe1,0xc6,0x49,0xa6,0x93,0x5c,0x42,0x82,0xeb,0xf7,0x71, - 0x5c,0xb2,0x74,0x9f,0x1a,0x67,0xc5,0x83,0xb0,0x51,0x73,0x69,0xbf,0xf9,0x3e,0xae, - 0x50,0x0a,0x3b,0x83,0xf4,0x34,0x3a,0x7f,0x15,0xbf,0x02,0xfc,0x57,0x8c,0x60,0x04, - 0x07,0xfe,0xff,0xc7,0xf1,0xe8,0xbc,0x3f,0x8a,0x0f,0x1f,0x74,0xf4,0x7d,0xc7,0x30, - 0x7e,0x0d,0xf8,0xaf,0xe8,0x63,0x13,0x0f,0x77,0xbd,0xc3,0x78,0x70,0xde,0x7f,0x1d, - 0xf7,0xd7,0xfa,0xfa,0xbe,0x8f,0x37,0xdd,0x47,0x84,0xe1,0x07,0x9a,0xe4,0x90,0xe4, - 0xc2,0x98,0xd3,0x88,0x2b,0x8d,0xf9,0x91,0x45,0x1f,0xb2,0x14,0xbf,0xf7,0xe8,0x29, - 0x45,0x54,0xbd,0x72,0x40,0xd4,0xf7,0xfd,0x0c,0xd7,0x6d,0x16,0x93,0x68,0x9c,0xa8, - 0x02,0x31,0x62,0x91,0x56,0x2f,0x66,0x6c,0xb2,0x9c,0xbc,0xd9,0xc7,0x21,0x38,0xd0, - 0x7f,0x70,0x5d,0x86,0xdf,0x82,0x4b,0x4d,0x81,0x02,0x0a,0x91,0x5f,0x83,0x5b,0xa2, - 0x31,0x82,0x83,0xc3,0x70,0x34,0xb3,0x7b,0x35,0x9e,0x8b,0x5e,0x1f,0x8c,0x4f,0xd8, - 0x37,0xc6,0xaf,0x5c,0x9d,0x17,0xb9,0xe1,0x11,0xa8,0x02,0x99,0x33,0xf9,0x7c,0x1a, - 0xb1,0x19,0xf2,0xde,0x0d,0xda,0xd9,0x8d,0xfe,0x46,0x2f,0x32,0x70,0x9c,0x6f,0x81, - 0x5e,0x0f,0xcc,0xe7,0xac,0x04,0xae,0x76,0x05,0x51,0xa4,0x50,0x0a,0x63,0x25,0x08, - 0x28,0xb5,0xa4,0x8c,0x50,0x0a,0x09,0xbf,0xe5,0x88,0xfe,0x26,0x74,0x26,0x7a,0x5c, - 0xc5,0x78,0x1a,0x5d,0x96,0xb2,0x80,0xb0,0xf5,0xf8,0xc5,0xad,0x3d,0xf9,0xf7,0x37, - 0xfb,0x6e,0x6f,0x66,0xc9,0xc0,0x84,0x54,0x1b,0x5b,0x43,0x11,0xef,0xd2,0x33,0x12, - 0xef,0x29,0x5e,0xd9,0x28,0x9c,0xaa,0x50,0x36,0x20,0x41,0x2b,0x82,0xce,0x58,0x61, - 0x17,0x26,0x1a,0x07,0x94,0x85,0xf9,0xb9,0xa2,0x5b,0x4a,0xc3,0xbb,0xcf,0x35,0xce, - 0xc7,0xe7,0xf9,0x5f,0x7a,0xbc,0x42,0x35,0x99,0xe7,0x3d,0x24,0x3a,0x05,0xe2,0x99, - 0xe6,0x83,0xf1,0xdb,0x14,0x4d,0x26,0xe0,0x19,0x78,0xa4,0x01,0x31,0x26,0xf0,0xad, - 0x3b,0x8d,0x1a,0x41,0xb1,0x16,0x89,0xe2,0xd5,0x1b,0xcb,0x8f,0x68,0xfc,0x8b,0x91, - 0x60,0x67,0x99,0x81,0x42,0xa5,0xf2,0xa5,0x01,0xc1,0x1b,0x84,0xca,0xcb,0x18,0xae, - 0x2d,0x12,0x40,0x68,0x72,0x5b,0xb3,0x3c,0x35,0xb8,0x99,0xd0,0x16,0x2f,0x31,0xde, - 0x86,0x37,0x09,0x4e,0x19,0x87,0xa1,0x6f,0xf6,0xf9,0xeb,0x09,0x7c,0x96,0xb2,0x84, - 0x85,0x41,0x66,0x83,0xa5,0x42,0xe1,0x07,0xd9,0x94,0xfe,0x78,0xf9,0x45,0x82,0xc8, - 0x35,0x52,0x61,0x49,0xaf,0x82,0x8a,0x5b,0x99,0x42,0x66,0xe3,0x37,0xfb,0x25,0x1e, - 0x82,0x82,0x86,0x35,0x6c,0xd2,0xd7,0x35,0x1c,0x4c,0x11,0x7b,0x4c,0x68,0xc0,0xce, - 0x30,0xae,0xbc,0x43,0xbc,0x5c,0x55,0x00,0x70,0x3f,0x4e,0xe3,0x7a,0x13,0xcf,0x7c, - 0x01,0x3c,0xe6,0xcd,0xda,0x34,0x2e,0x82,0x4e,0xd4,0xbc,0xcc,0xa5,0xc5,0x61,0x48, - 0x7d,0x2d,0x11,0x7f,0x7e,0xb8,0xef,0x67,0xbb,0xd0,0x51,0xad,0xc1,0xf6,0xa8,0x0f, - 0x03,0x83,0xe3,0x1d,0x9b,0x67,0xb6,0xbe,0x03,0x75,0x8e,0xaf,0xd1,0xf2,0x86,0xac, - 0xa8,0x31,0x61,0xed,0x3c,0x21,0x1e,0x5a,0x9f,0x85,0x6d,0x2b,0x1e,0xd9,0x27,0x24, - 0xd0,0xa7,0xff,0xea,0x79,0xa6,0xc1,0x3d,0x77,0xd9,0x9f,0x48,0x9e,0x6d,0xec,0xc3, - 0xbc,0xc9,0xa3,0x93,0x42,0x38,0x4e,0x1d,0x9f,0x15,0x48,0x75,0x09,0xbf,0x65,0x3f, - 0x66,0x60,0xd8,0x43,0x40,0xa2,0xab,0x72,0x51,0x7e,0x0f,0x67,0x16,0x27,0x2a,0x23, - 0x03,0xe1,0x34,0x94,0x33,0x55,0x48,0x30,0xb9,0x94,0xa5,0x89,0xff,0xf6,0x46,0xc0, - 0x4c,0xcb,0xe9,0x69,0xf4,0x4f,0xb5,0x2b,0x8d,0x73,0x2f,0x17,0x76,0x67,0xf7,0x44, - 0x4b,0xbb,0xd0,0x05,0x4c,0x45,0x6e,0x64,0x14,0x58,0xb3,0xe9,0x1d,0x45,0x63,0xbe, - 0xae,0x59,0xe1,0x76,0x98,0x68,0x75,0x67,0xa4,0x7e,0xb3,0x2f,0xc6,0x60,0x15,0xb3, - 0x90,0xdf,0x5a,0xab,0x5b,0x2d,0x8d,0x89,0x3d,0x1e,0xea,0xe7,0xe2,0xf4,0x07,0x22, - 0x2c,0x73,0xf7,0xd8,0x96,0xfd,0x0a,0x0b,0xaa,0x20,0x44,0x66,0xb5,0xbe,0xc1,0x7a, - 0xc3,0xe1,0x7a,0xc3,0x90,0x1b,0x1a,0xf7,0xfb,0xee,0xcf,0x7e,0xfb,0x75,0xbc,0x46, - 0x10,0xa0,0x0f,0x2f,0xe6,0x59,0x9a,0x2a,0x7b,0xc2,0xf8,0xfc,0x26,0xf7,0xd2,0x6f, - 0x8d,0xd4,0x9d,0x66,0x28,0x4f,0xcb,0x65,0x34,0x7e,0xef,0x84,0xf8,0xea,0xb6,0x12, - 0xa6,0x18,0x49,0x4c,0xc5,0x42,0x5a,0x64,0xdc,0xcf,0x60,0x14,0x64,0x48,0x41,0x51, - 0x80,0x96,0x22,0x99,0x31,0x99,0xcf,0xff,0xed,0xe6,0x06,0x10,0xbf,0x68,0xe3,0x13, - 0x26,0xcb,0x26,0x7f,0xe0,0xd9,0x27,0xe3,0x2b,0x16,0xaf,0x74,0x71,0x91,0xf7,0x70, - 0xfa,0x1c,0x3b,0x20,0x95,0x65,0xae,0x96,0x73,0x59,0xd8,0xef,0x91,0x93,0xc7,0x70, - 0x43,0xdb,0x3b,0xa6,0x03,0x2b,0x8d,0x35,0x2b,0x46,0x72,0x01,0x1e,0x9c,0x38,0x51, - 0xca,0x3a,0x9d,0x92,0x0a,0x2b,0x7a,0xac,0x8b,0x0f,0x07,0xaf,0x46,0xf8,0x00,0x10, - 0x16,0x45,0x2e,0x8d,0x21,0xc0,0x41,0xe4,0x46,0x79,0x59,0xc0,0x8b,0x98,0x19,0x0b, - 0xf7,0x1f,0xae,0xaf,0x7a,0x17,0x97,0xbf,0x71,0x4f,0x21,0x73,0xaf,0x76,0x62,0x38, - 0x9b,0xe2,0xa8,0x3a,0x40,0xd5,0x99,0x19,0x21,0x16,0xc4,0x17,0x91,0xe5,0x64,0x81, - 0xc1,0x4c,0x6a,0xb9,0x07,0x0b,0x23,0xe1,0x97,0xeb,0x77,0x74,0xf2,0x4c,0xe4,0x20, - 0x2c,0xe0,0x21,0x9d,0xea,0x88,0xe7,0xd2,0xcc,0x12,0x84,0x36,0xce,0x14,0x1f,0x8b, - 0xd4,0x8c,0x5e,0x14,0x34,0x82,0x1c,0x72,0xc2,0x7b,0x6c,0x4c,0x96,0x42,0x1c,0xc7, - 0xd5,0x80,0x7a,0x67,0x79,0x57,0xf5,0xc5,0x88,0x14,0xe9,0x48,0x42,0x05,0x31,0x8c, - 0x91,0x39,0xcb,0x48,0x8a,0x31,0xad,0x94,0xaf,0xdb,0x44,0x5a,0x9d,0xe1,0x18,0x31, - 0xb5,0x52,0xd7,0x0e,0xe3,0x38,0xbc,0x45,0xe8,0x8d,0x2f,0xfc,0x49,0x49,0xdb,0xc3, - 0xce,0xf5,0xf5,0xd9,0x87,0xdd,0x4a,0xde,0xd5,0x67,0xe0,0x3d,0xaa,0x6e,0x9d,0xb7, - 0xcf,0xa3,0x35,0x89,0xc8,0x52,0xc7,0x11,0x06,0x2f,0x6e,0x75,0xd0,0x8a,0xe5,0xe8, - 0x8b,0x17,0x8f,0xa2,0xcc,0xac,0xc8,0x91,0x75,0xf1,0x46,0x4d,0xa7,0x41,0x66,0x6a, - 0x0a,0x51,0xfb,0x16,0xbf,0x95,0x73,0xe7,0xa3,0x4d,0x42,0x12,0x8c,0x4c,0x56,0x6b, - 0x27,0x82,0x85,0xe3,0xba,0x69,0xc0,0x7a,0x9c,0x02,0x83,0x5a,0xe5,0x38,0x8d,0x87, - 0x71,0x56,0xd6,0x77,0xc9,0x7b,0xfc,0x96,0x4a,0x5c,0xc4,0x0b,0x16,0x55,0xcc,0x15, - 0x92,0x17,0x5d,0xf4,0xe2,0x34,0xe2,0x54,0x60,0x5c,0x6a,0xfe,0xfc,0xc0,0x86,0x36, - 0x8a,0xa2,0x9a,0x74,0x52,0xa5,0x2c,0xae,0x71,0xcd,0x9d,0x97,0xfe,0x7c,0x2f,0x77, - 0xa3,0x31,0x36,0xd4,0x65,0x33,0x63,0x7f,0x1b,0x0d,0x9a,0x8a,0xa6,0x3e,0x8c,0x0b, - 0x72,0xa3,0x56,0xe5,0x13,0xd0,0x1d,0x58,0xe7,0xe1,0x05,0xe7,0x06,0x8c,0xf9,0xe5, - 0xb2,0xb8,0x25,0x53,0x76,0x34,0x5c,0xd3,0x4f,0x8c,0xec,0x36,0xec,0x82,0x99,0x83, - 0x2b,0x04,0xde,0x88,0xd6,0x92,0xe4,0x67,0x85,0xba,0x06,0xae,0x6b,0x30,0xd4,0x30, - 0x66,0xd5,0xed,0x6d,0x2e,0xe9,0x56,0x87,0x53,0xef,0x90,0xdc,0x21,0xb4,0xe1,0x3e, - 0x75,0xb4,0x35,0x10,0x46,0x0f,0x41,0xa2,0xf1,0x47,0x89,0x37,0x01,0x26,0xb9,0x28, - 0x3e,0xb3,0x34,0x11,0x05,0x10,0x15,0xc2,0x95,0x8d,0xa1,0x26,0x1f,0xc2,0xfe,0x3d, - 0x9a,0xca,0x68,0x2e,0x67,0x5a,0x90,0x06,0x9a,0x8b,0x25,0x4c,0x24,0x2c,0x4a,0x92, - 0x75,0xa3,0x43,0x7e,0x4e,0x2c,0x12,0x2b,0xb5,0x39,0x01,0x01,0xa3,0x61,0xaf,0x6a, - 0x00,0xcc,0x45,0xc2,0x7c,0x61,0x2c,0x8d,0x9f,0xc9,0x7b,0x91,0xca,0x24,0x9b,0x8b, - 0x3c,0xf6,0xe2,0x03,0x06,0xf1,0xf0,0x85,0xc5,0x0d,0x4c,0x79,0xf2,0xd3,0xcf,0x7f, - 0x06,0x38,0x0c,0x1e,0x39,0x5f,0xc6,0x5b,0xa8,0xdf,0x14,0x61,0x9e,0x1d,0x82,0x98, - 0xda,0x67,0xe1,0x17,0xa4,0xd5,0x66,0x2b,0xc4,0x3d,0x5a,0x59,0xb1,0x81,0x34,0x25, - 0xea,0xc1,0xd8,0xcf,0x41,0xda,0x67,0xc8,0xc6,0x7d,0xe6,0x01,0xfc,0x3c,0xa4,0x7b, - 0x25,0x4b,0x6e,0xf1,0x17,0x6c,0x95,0xe1,0xee,0x0f,0x0e,0xf8,0x4e,0x37,0x51,0x7e, - 0x4e,0xa7,0x9f,0x0b,0xeb,0x85,0xfe,0xda,0x81,0xb5,0x5a,0x20,0x9a,0x58,0x04,0xe1, - 0x3d,0xd1,0xcb,0x20,0x66,0x59,0x6e,0xc5,0x40,0xb7,0xa1,0x60,0xd1,0x9f,0xe5,0x39, - 0x4b,0x30,0x3f,0xe3,0xa5,0x09,0x47,0x8b,0x01,0x8d,0x45,0xc6,0x17,0x88,0xd0,0x06, - 0xa5,0xd4,0xf3,0xcc,0x5a,0x99,0x42,0xae,0x12,0x91,0x23,0x2e,0xe1,0x6d,0x25,0xd3, - 0xc5,0x67,0x69,0x40,0x4e,0xa7,0xa4,0xb6,0x58,0xde,0x79,0xdd,0xb0,0x07,0x46,0x39, - 0xac,0x65,0x06,0xfe,0xae,0xb2,0x42,0xa6,0xbe,0x9f,0xf7,0xe5,0x31,0x60,0x95,0x8a, - 0x3b,0xdc,0xca,0x0b,0x04,0x9f,0xc5,0x62,0x13,0xf3,0x4d,0x69,0x47,0xe3,0x1e,0xdc, - 0xb4,0xc3,0xfe,0x26,0x54,0x86,0xcb,0x49,0xc3,0x99,0x29,0x1d,0xdb,0x17,0xa0,0x9c, - 0xd9,0x44,0xca,0x83,0x31,0x99,0x15,0x5e,0xb7,0xb2,0x81,0x4f,0xed,0x46,0xdc,0x4a, - 0xb3,0x06,0x77,0xbb,0xfd,0xe8,0xef,0x1b,0x6d,0xf6,0x93,0xda,0x19,0xe0,0xf5,0xba, - 0x40,0x78,0xbf,0x83,0x4f,0x22,0xcd,0xd4,0xc6,0x5b,0xe6,0x41,0x1b,0x74,0xf4,0x17, - 0xd8,0x40,0x19,0x54,0x06,0x8a,0x5f,0xf8,0x5b,0x58,0x28,0x8c,0x78,0x77,0x7d,0x60, - 0x26,0x85,0x06,0xb6,0x36,0x14,0xa2,0x47,0x03,0x1b,0xa7,0xb2,0xe0,0x42,0x5f,0xd0, - 0xb4,0x25,0x39,0x73,0xa4,0x02,0x4d,0x0c,0x57,0x78,0x60,0xc6,0x22,0x09,0x26,0x69, - 0xd9,0x84,0x71,0xcc,0xe3,0xf0,0xba,0x30,0x8c,0xc0,0xb2,0x8d,0xe0,0x98,0x87,0xcd, - 0x54,0xe1,0x67,0xaf,0x88,0xee,0x1e,0x22,0x05,0xca,0xe9,0x92,0x91,0xcb,0x7c,0x48, - 0x0d,0x7c,0xee,0x6b,0x99,0x7b,0x29,0x86,0xa4,0x71,0xe3,0xb7,0x10,0x5f,0x97,0xbd, - 0x64,0x81,0x06,0x79,0x07,0x1e,0xbc,0xf9,0x1d,0x4a,0x75,0x27,0x35,0xec,0xa4,0xef, - 0xe6,0xbb,0xdd,0x44,0x80,0xbd,0xf7,0xd7,0xbe,0xf7,0xda,0xdf,0xfb,0xc3,0x83,0xc7, - 0x5d,0x77,0xf7,0x2b,0x08,0x90,0xcb,0x5b,0x91,0xfb,0xfd,0xbf,0x08,0xb6,0x2d,0x26, - 0x4b,0xd0,0x8c,0x25,0x24,0x7c,0x2a,0xcc,0xec,0x04,0xb8,0xf8,0xde,0x63,0x59,0x2f, - 0xf2,0x06,0x8b,0x36,0xcc,0xc1,0x0b,0x29,0xd3,0x8a,0x68,0x48,0x2e,0x61,0x81,0x6a, - 0x31,0x5f,0x5a,0xa0,0x0a,0x29,0x99,0x7e,0x0f,0xef,0x67,0x4a,0x19,0x49,0x36,0xd1, - 0xbf,0x92,0xb9,0xee,0x3d,0xa8,0x6a,0x0e,0x19,0x46,0x7b,0x40,0xf5,0x23,0x66,0xe6, - 0x5c,0xf9,0x3d,0xa2,0x7a,0x41,0x4d,0xb2,0x67,0x17,0x85,0x84,0xcc,0xdd,0xa6,0xa6, - 0x43,0x11,0x62,0x04,0x6f,0xcb,0x72,0xdd,0xa5,0x40,0x0f,0xf8,0x8b,0x28,0x12,0x04, - 0x4e,0xa6,0x99,0x55,0xec,0x32,0xc4,0xf5,0x8b,0xd6,0xbc,0x0a,0x95,0x37,0xdb,0x6b, - 0x38,0xd2,0xa1,0xe7,0xdb,0xdc,0x88,0xcb,0x42,0xae,0xf9,0xcf,0xac,0xfa,0xea,0xee, - 0xb5,0xb3,0x3e,0x17,0xbe,0x5e,0xa0,0x44,0x61,0x41,0x38,0xd2,0xf3,0x3b,0xa1,0x49, - 0xcd,0xe5,0x4a,0xa4,0x66,0xcf,0xc5,0x3c,0xb4,0xb2,0x32,0x41,0x4c,0x3b,0xe4,0xb1, - 0xb8,0xdc,0x76,0x2d,0x2e,0xe4,0x1d,0x94,0x1d,0x5d,0xe1,0xc0,0x83,0x55,0x4b,0x5d, - 0x24,0xf6,0x8f,0xd6,0x8d,0x8f,0x42,0xde,0x55,0x8e,0xf1,0x56,0x56,0xec,0x1f,0xc1, - 0x2f,0x37,0x3f,0xf6,0x8e,0x91,0x01,0xad,0x34,0x4e,0x5f,0x1c,0xf7,0xb0,0xb5,0xd4, - 0x38,0x8e,0x2d,0xf3,0xb7,0xd7,0xef,0xcf,0xce,0x6a,0x7a,0x1c,0xac,0x62,0x3f,0x20, - 0x9c,0x97,0x39,0xa2,0x76,0xe2,0x16,0x03,0x83,0xc3,0x2b,0xfe,0x20,0x8c,0xf2,0x9e, - 0x28,0x59,0x52,0x77,0xb9,0xae,0xe8,0x49,0x11,0xce,0x1f,0x87,0x2e,0x8c,0xf3,0x3e, - 0x11,0x61,0xed,0xdc,0xc9,0x26,0x63,0x8b,0x55,0xb7,0xae,0x1c,0xfa,0x28,0xb5,0xde, - 0x61,0x68,0x36,0x68,0x85,0xb6,0x79,0x8c,0x99,0x75,0xc3,0x3c,0xc8,0x34,0x96,0xc5, - 0x3d,0x8a,0xae,0x3d,0x58,0xfe,0x1a,0x1b,0x58,0x42,0xee,0xe0,0x26,0xf4,0x05,0x78, - 0xe0,0xb6,0xad,0xb6,0xef,0x50,0xb0,0xd6,0xad,0xed,0x80,0x9c,0xe0,0x37,0xf0,0x2a, - 0x8e,0xf5,0x66,0x53,0xc3,0x35,0x14,0xdd,0xe1,0x63,0x14,0xdd,0x61,0xa5,0xe8,0xfc, - 0xf2,0xd8,0xd1,0xc2,0x03,0x97,0x13,0xe7,0x0f,0x7b,0x8f,0x4a,0xe9,0x0c,0xaf,0xf3, - 0x6e,0x17,0x1b,0x62,0xfe,0x0f,0x6b,0x63,0x37,0x7e,0xb3,0x9b,0xb4,0xe9,0x86,0xfc, - 0xac,0xee,0x9c,0x1c,0x50,0x7e,0x5f,0xaf,0x20,0xa7,0x24,0xae,0x33,0x6b,0x64,0x3e, - 0x05,0x92,0x1b,0x8b,0x49,0x8e,0xf2,0x52,0xa6,0xde,0xa2,0xd8,0x2f,0x91,0xe2,0xd2, - 0xae,0x0c,0x0b,0x38,0x2b,0x28,0x2e,0xc4,0xe2,0x43,0xe4,0xac,0x7d,0x83,0x8c,0x67, - 0x17,0x78,0x61,0xa4,0x17,0x3a,0xaa,0xcc,0x12,0xdc,0x4e,0x13,0x88,0x33,0xd6,0xc5, - 0x3c,0x09,0xf5,0xaf,0x96,0x64,0xe3,0xc9,0x94,0x3d,0x54,0xbe,0x6f,0x45,0xb0,0xa1, - 0xba,0x18,0x5c,0x67,0x6f,0x6f,0xde,0x06,0xf5,0x42,0x21,0xbf,0xce,0x38,0xcb,0xf0, - 0xcb,0x43,0xe3,0xab,0x89,0xbf,0x95,0x60,0xa8,0x18,0xac,0xb5,0xf0,0xb7,0x8b,0x92, - 0xbc,0x90,0x42,0x4b,0x63,0x41,0x64,0x9a,0xca,0xe1,0x18,0xe0,0x3d,0x90,0xf1,0x6d, - 0x4c,0x8a,0xeb,0xc3,0x0f,0x17,0xa4,0xa6,0x58,0x50,0xb1,0x31,0xc7,0x58,0x03,0x8a, - 0xf5,0x9b,0x2e,0xa8,0xb8,0xbc,0x2b,0xa4,0x76,0x44,0x4b,0xc8,0x01,0xe9,0xce,0x3e, - 0x34,0xb1,0xe9,0xf2,0x75,0xf3,0xb9,0xeb,0xb2,0xa6,0x9d,0xe3,0x2e,0x4b,0xcf,0x23, - 0x81,0x3d,0xbc,0xb7,0x44,0xce,0x51,0x0d,0x64,0x50,0x3e,0xc8,0x47,0x2b,0x8a,0x02, - 0xa7,0x78,0x87,0xe0,0x0c,0x2f,0xef,0x22,0x65,0xb4,0x30,0x0b,0xc1,0xbf,0xfc,0x76, - 0x63,0xc0,0x28,0x8e,0x23,0x65,0x89,0xf4,0x46,0x81,0x59,0x94,0x8c,0x58,0x1f,0x73, - 0xca,0x9d,0x41,0x47,0xa0,0x64,0xf3,0x95,0xe6,0xeb,0x8e,0x4c,0x7e,0xcb,0xbf,0x19, - 0x8f,0xdc,0xb5,0x86,0x48,0x6e,0x6b,0x62,0xae,0x33,0x52,0x58,0xf5,0x64,0x9b,0x8e, - 0xca,0xb7,0x88,0x8f,0x41,0x5e,0x51,0x75,0x12,0xb2,0x6d,0x8d,0x9a,0xcb,0x0a,0x0d, - 0xf5,0xa3,0x79,0x51,0xe4,0x02,0x6d,0x35,0xe9,0x13,0xa2,0x1f,0xb9,0xb2,0xe6,0x5b, - 0xe9,0x83,0x41,0x47,0x7d,0xd0,0x10,0xd4,0x6b,0x72,0xff,0x1c,0xd1,0x18,0xc4,0xbe, - 0x97,0x9a,0xdd,0xa5,0xfe,0x9a,0x88,0x0f,0x6b,0x7d,0x92,0x94,0xce,0xeb,0x20,0xdd, - 0x87,0xdd,0xa4,0x7b,0xa5,0x5c,0x78,0xdd,0x1e,0xe7,0x8b,0x22,0x27,0xf2,0x87,0x35, - 0xdf,0x86,0x7b,0xe1,0x85,0x98,0x97,0x27,0x1c,0x88,0x6b,0x50,0xc0,0x2f,0xd0,0x4e, - 0x82,0x60,0xfd,0x5e,0x8b,0x2f,0x4c,0xf5,0x2a,0xbe,0xe9,0xbc,0x05,0x99,0xb2,0x51, - 0xb2,0x07,0x14,0x6c,0xe1,0x8e,0x60,0xd7,0xa1,0xc6,0xaf,0xa2,0x91,0x22,0x4d,0x29, - 0xe4,0xe2,0xcd,0x5d,0xe7,0xcd,0x1a,0x40,0xfe,0x53,0xe0,0xea,0x8e,0x28,0x12,0xa2, - 0xbd,0x34,0xbe,0xf1,0xd1,0x6e,0x1c,0xcb,0xe6,0x60,0x2d,0x88,0x49,0x55,0xf8,0x7a, - 0xef,0x41,0x54,0x52,0x4e,0x16,0x19,0xe2,0x9c,0x85,0xd6,0x63,0xf9,0x67,0x0d,0x89, - 0x94,0xe6,0x5d,0xe7,0xa9,0xc3,0x06,0x4f,0x75,0x57,0xfc,0x84,0xf0,0xfa,0x7a,0x1c, - 0x21,0x46,0x3c,0x4a,0x66,0x2e,0xfc,0x74,0x84,0xf1,0xf8,0x68,0xf0,0x46,0x5b,0x6e, - 0x84,0xd7,0xc6,0x86,0x06,0xcd,0x2a,0x5b,0xbd,0x59,0x5e,0x5f,0xcb,0x9c,0xf7,0x47, - 0xa4,0x18,0x1e,0xe5,0x61,0x6c,0xf2,0x01,0xca,0xfb,0x8d,0x8e,0x07,0x9b,0xe3,0xed, - 0xa9,0x19,0x51,0x96,0xdb,0xf8,0xdb,0x8a,0x89,0xe1,0x23,0xf2,0x5f,0x35,0xc2,0xb1, - 0x84,0x43,0x69,0xcf,0xb6,0xd4,0x83,0x9c,0xc6,0x83,0xb8,0x40,0x63,0x02,0x8b,0xc4, - 0x68,0xcc,0x97,0xb8,0x6d,0x0c,0x47,0x20,0xa3,0x31,0xb1,0x71,0xfb,0x18,0x32,0x3e, - 0x0c,0x52,0x8d,0x3e,0xda,0x47,0x21,0x1e,0x31,0x2b,0xf1,0xf1,0xac,0x3d,0x4e,0x61, - 0x9d,0x39,0xd8,0x7a,0xaf,0x39,0x86,0xb0,0xcd,0x4a,0xbb,0xa8,0xc5,0x75,0x1e,0x1b, - 0xd6,0xf9,0x5a,0x34,0xaf,0x3f,0x3a,0x3c,0x1e,0x56,0x3b,0xbd,0xcb,0x17,0xd2,0x2a, - 0x65,0x67,0x9d,0x63,0x49,0x93,0x30,0x23,0xde,0xb4,0x3d,0xd4,0x2a,0xc5,0x4e,0x23, - 0x72,0x84,0x42,0x8a,0xbe,0xf7,0x22,0xb7,0x27,0x95,0xc5,0x45,0x79,0xea,0xed,0xaa, - 0x2a,0xa8,0x7a,0x58,0x81,0xc8,0xbf,0x8f,0xe8,0x2d,0x36,0xa8,0x47,0x5a,0xad,0x82, - 0xa9,0xca,0x73,0x75,0xd7,0xc1,0xac,0x6b,0x62,0x64,0x74,0x74,0x74,0x38,0x6a,0x62, - 0x24,0x08,0xb4,0xc7,0x21,0x65,0x2e,0x92,0x07,0x38,0x19,0x0c,0x37,0xe0,0x64,0x2a, - 0x12,0xab,0xf4,0x32,0xec,0xb0,0x11,0x11,0x34,0xee,0xfd,0x00,0x9f,0x1f,0xe2,0xa3, - 0x97,0xef,0x0e,0x0f,0xbf,0x1b,0x0e,0xbf,0x3b,0x3a,0x42,0xb1,0x28,0x8a,0x54,0xcd, - 0xc3,0x67,0x8f,0x63,0x9a,0x3d,0x17,0x5c,0x54,0x3a,0xb4,0x72,0x50,0xb1,0xe7,0x33, - 0x30,0x31,0xbc,0xcf,0xa5,0xc0,0x3e,0x69,0x70,0x53,0x36,0x60,0x1a,0x10,0xc4,0x2e, - 0xbf,0x95,0x2a,0xe9,0x52,0x4a,0xf5,0xec,0x94,0x95,0x22,0x47,0x6c,0x4c,0x73,0x71, - 0xdb,0x11,0xa1,0x58,0x37,0x79,0xf0,0x6a,0xd0,0xc4,0x68,0x58,0xab,0x11,0xbd,0x6a, - 0xa2,0xd1,0x8f,0xc4,0x35,0x14,0x33,0x04,0x7c,0x11,0xf9,0x22,0x58,0x38,0x97,0xd3, - 0xe9,0x9b,0x7d,0xd7,0xde,0xe8,0x2f,0xb0,0xbb,0xa8,0x7a,0xdb,0xe3,0x5d,0x94,0x0b, - 0x4e,0x65,0x29,0xb9,0x00,0x0d,0x14,0xe7,0xd8,0x02,0x36,0x42,0x30,0x27,0x86,0xb7, - 0x29,0x3f,0xdc,0x37,0xd2,0xab,0xb0,0x7c,0x09,0x8b,0xc2,0x66,0x39,0xf0,0x4f,0xfe, - 0x41,0x29,0x32,0x8d,0xe3,0xbc,0xca,0x13,0x49,0x22,0x4b,0xeb,0x9c,0x13,0x36,0x12, - 0x27,0xaa,0x20,0xf3,0xaa,0x94,0x52,0xe3,0x52,0x45,0xb5,0xbc,0x56,0x56,0x30,0xd0, - 0x5a,0x2a,0x84,0xc0,0x84,0x75,0x90,0x52,0x8c,0x77,0x1c,0x21,0xff,0xb1,0xc8,0xb4, - 0x04,0xe1,0xf5,0x46,0x47,0xc4,0x0f,0x46,0x83,0xfe,0x70,0x18,0x72,0xeb,0x06,0xe5, - 0x90,0x2c,0xf3,0x65,0xcf,0x1f,0xa7,0x22,0xc8,0x47,0xea,0x72,0x9e,0x16,0x9b,0x90, - 0xc0,0xc3,0xda,0xa8,0xc2,0x2b,0xc5,0x3c,0xa4,0x95,0x1c,0xb0,0xe3,0x0b,0xbd,0x76, - 0xdb,0x08,0x53,0x28,0x14,0xe3,0xb4,0x06,0x5c,0xa8,0xb6,0x31,0x4b,0x69,0xc2,0xa0, - 0x3f,0xa4,0xe9,0x44,0xc4,0x6a,0x34,0x28,0x8d,0x2b,0x93,0x24,0x88,0xde,0xce,0xe1, - 0x0c,0x08,0xe8,0xef,0x23,0x98,0x6a,0x35,0x67,0xa3,0x88,0x22,0x4b,0xd9,0x17,0x61, - 0x25,0xf1,0x36,0x67,0x27,0x2d,0x5e,0x01,0x03,0x77,0x44,0x39,0x36,0x73,0xbd,0x74, - 0xc9,0xcc,0xca,0x16,0x89,0x81,0xd6,0xe7,0xb4,0xa5,0x96,0xa0,0x69,0x76,0x8e,0x86, - 0xb1,0x95,0x69,0x0c,0x7f,0xb0,0xf7,0x30,0x53,0x6e,0x8e,0xdf,0x43,0xd5,0xd7,0x6a, - 0x97,0x3f,0x6c,0xb1,0xd4,0x2f,0x4c,0xd4,0xa6,0x09,0x3e,0x22,0xa3,0xd8,0xc5,0xca, - 0xdb,0xdc,0x1a,0x5b,0xcd,0x85,0x0d,0x29,0x14,0x51,0x2c,0x5b,0x54,0xc1,0x8a,0x09, - 0x8a,0xdb,0x47,0x2c,0xad,0x8a,0x8d,0x4b,0x7f,0x93,0x08,0x64,0xc3,0x12,0x65,0xe9, - 0xd7,0x25,0x8a,0x48,0x21,0xc3,0x46,0x20,0xb1,0xa1,0x1b,0x82,0xa5,0x19,0x82,0xb5, - 0xb5,0x3a,0x9f,0xbf,0x2e,0x84,0x17,0xc2,0x0c,0x99,0x59,0x6d,0xc7,0x78,0xfa,0xaf, - 0x8f,0x64,0xfe,0xef,0x8c,0x2a,0xd6,0x78,0xec,0xa3,0xfa,0x24,0x7c,0x02,0xe6,0x41, - 0x8d,0x1f,0x95,0x74,0x82,0xd4,0xba,0x56,0xb6,0xc7,0xa3,0xf8,0xc7,0x15,0xa2,0x71, - 0x95,0x81,0x03,0x51,0xb2,0x40,0xe4,0x14,0x6a,0x1b,0x8b,0xfe,0x48,0x42,0x5a,0x16, - 0xc9,0x72,0x0f,0x26,0xc8,0x86,0xfe,0x57,0x9b,0xaf,0x7f,0x64,0x9e,0x7c,0xff,0x09, - 0xe6,0xab,0xbc,0x24,0x47,0x1a,0x38,0xcb,0x23,0xef,0x91,0x79,0x6a,0xc1,0x2b,0x01, - 0x77,0x1a,0x2f,0x22,0x4b,0x40,0x9f,0x39,0xac,0x3b,0xdd,0x53,0xaf,0x97,0x32,0x5d, - 0xe9,0x9d,0x7b,0x12,0x33,0xa8,0x95,0x7c,0x79,0x47,0xab,0x3f,0xd4,0x42,0xae,0x0a, - 0x6a,0xd8,0x39,0xff,0xf9,0xcf,0xdd,0xaf,0x5f,0x7e,0x7d,0x8b,0xd3,0x71,0x52,0xb8, - 0xfe,0x07,0xf1,0xc1,0x41,0x3f,0xa4,0x6e,0x8f,0x0e,0x7c,0x12,0x67,0x80,0x4f,0x5b, - 0xbe,0x22,0x70,0xde,0x05,0x24,0xc1,0xce,0xe7,0xce,0x3b,0x4f,0xee,0x6a,0xfb,0x86, - 0x6d,0x5f,0xf9,0x4d,0xeb,0x7b,0x3e,0x12,0x0d,0xd7,0xa5,0x96,0x82,0xaa,0x78,0xbd, - 0x25,0xd4,0x54,0x7e,0x01,0x02,0x43,0x93,0xbc,0x26,0x3a,0x5a,0xd7,0x5c,0xe3,0x51, - 0xa3,0xe5,0x55,0xa3,0xe5,0xb8,0xd1,0xf2,0xba,0xd1,0xd2,0x3f,0x68,0x36,0xf5,0x9b, - 0x4d,0x83,0xa6,0x52,0xfc,0xca,0xe5,0xe4,0x33,0x92,0xe6,0x6a,0x3f,0x61,0xa2,0x9f, - 0x7d,0xc2,0x76,0xb0,0x1e,0x9f,0x3f,0xfc,0x86,0xe9,0xc3,0xed,0xc2,0xa2,0x26,0x05, - 0x7c,0x95,0x79,0xb0,0x94,0x8c,0x97,0x23,0x1f,0x5c,0xf3,0x06,0x57,0x6d,0xc3,0xdc, - 0x60,0xd5,0x35,0xcc,0xad,0x4f,0xbe,0x23,0x1c,0x70,0xdd,0xbe,0xf2,0x0b,0xc4,0x61, - 0x81,0x86,0x95,0x85,0x5c,0xfe,0x4e,0x11,0xc0,0xde,0xc8,0x6a,0xb3,0x9f,0x5e,0xe3, - 0xc0,0xd7,0x07,0x38,0xea,0x56,0x4b,0x69,0xda,0x46,0xf5,0x8f,0x71,0x58,0xff,0xf8, - 0xab,0xe3,0x06,0xaf,0x70,0xdc,0xe0,0x55,0x63,0x5c,0x93,0xc6,0x1d,0xef,0xdc,0x65, - 0x01,0x13,0x61,0xad,0xd4,0xcb,0xaf,0x61,0x62,0xae,0x52,0xf9,0x3c,0xd3,0xbf,0xd1, - 0xeb,0x7c,0x75,0x44,0x24,0x7f,0xb6,0x8d,0xf2,0x86,0x38,0x55,0xd7,0xf2,0x1f,0x6c, - 0xcc,0x6f,0x5f,0xb2,0xe7,0xe7,0x84,0xa5,0xe1,0x9f,0xc1,0xb7,0xb4,0xcd,0x23,0xf5, - 0x46,0xa9,0x8c,0x04,0x83,0x2b,0xe1,0xcf,0x47,0xde,0xeb,0x9b,0x6c,0x2e,0xa9,0xc8, - 0x6e,0xc7,0xc8,0x44,0x15,0xa9,0xe9,0x76,0x79,0x02,0x7a,0xad,0x9b,0xbd,0x56,0x7f, - 0x73,0x88,0x4f,0xf1,0xab,0x0a,0x9c,0xa7,0xca,0xd5,0xcb,0x82,0x4b,0x0f,0xf9,0x5a, - 0x7f,0x8d,0xca,0x0b,0x33,0xf9,0x2b,0x29,0xfd,0xff,0x94,0x66,0x14,0x3f,0x93,0xda, - 0x6c,0x20,0xd6,0xc0,0xe7,0x18,0xb0,0xaf,0x87,0xf7,0xcf,0x14,0x7c,0x96,0x8e,0x7c, - 0xa9,0x2c,0x97,0xce,0x60,0x29,0x4b,0x72,0x8a,0x10,0x0c,0x1f,0x84,0x20,0x8f,0xe9, - 0xfd,0xaa,0x22,0x94,0x4d,0x73,0xc3,0x43,0x3d,0xa8,0x64,0x0a,0xf9,0x40,0x9b,0xd2, - 0x01,0xaf,0xc0,0xc6,0x8a,0x71,0x39,0x96,0x3b,0x34,0x8e,0xa8,0x74,0x7e,0xc5,0x60, - 0x90,0x4a,0xeb,0x23,0x8f,0xce,0x95,0x37,0xa1,0x52,0x69,0x42,0xe2,0x32,0xee,0x64, - 0x2b,0x86,0xf8,0x66,0x53,0xc8,0x7b,0x3e,0x6f,0x75,0xb6,0x2b,0x1a,0xbd,0xcd,0x34, - 0x21,0xd9,0x9b,0x12,0x9d,0x08,0x24,0xa6,0x2b,0xbb,0x26,0x98,0x35,0x07,0xad,0x35, - 0x59,0x62,0xda,0x4b,0x91,0x87,0xba,0x05,0x01,0x86,0x2b,0xc5,0xf3,0x3b,0xe2,0x25, - 0xa7,0x5a,0x42,0x61,0xba,0xb9,0x79,0xfa,0x9e,0x27,0x34,0x61,0xab,0xec,0xbc,0x86, - 0xc5,0xd5,0x0a,0xc7,0x51,0x7f,0x50,0xd7,0xf4,0xbc,0xf0,0x63,0x50,0x64,0xbf,0x0a, - 0xcb,0x16,0xc5,0xdf,0x84,0xcd,0x3c,0xf0,0xb8,0xa9,0x9e,0xd1,0x59,0xf7,0x93,0xf1, - 0xfb,0xb7,0x1f,0x60,0x87,0xcb,0x7b,0x8a,0x50,0xcb,0xcd,0x79,0xd7,0x79,0x46,0xe1, - 0x8c,0x09,0x42,0x39,0x7e,0xef,0xcb,0xfe,0x10,0xfa,0xec,0x4b,0x66,0x97,0x2b,0xce, - 0x73,0xb5,0xf3,0xb4,0xd4,0xda,0x7b,0x22,0x7b,0x9b,0x47,0x0f,0x0f,0xc8,0xc5,0x48, - 0x13,0x75,0xbf,0x3a,0x62,0x22,0xc8,0xa3,0x59,0xe0,0x02,0x0b,0xbf,0xc8,0xd7,0x21, - 0xef,0x8f,0x6a,0xa0,0x23,0x85,0x27,0x4a,0x51,0x61,0x12,0xdc,0x8a,0xac,0xf0,0xd0, - 0x5e,0xff,0xde,0x1f,0x8c,0xee,0x41,0xcb,0x44,0x66,0x94,0x92,0x63,0xd9,0xf6,0x2c, - 0x40,0xd9,0x4b,0x8a,0xf5,0x3d,0x6d,0xf2,0x68,0x88,0x07,0x07,0xc3,0x3a,0xba,0x7f, - 0xfc,0xe1,0x1c,0x02,0xdc,0x1e,0xe0,0x1f,0xee,0xad,0xd4,0x14,0xf4,0x9d,0x6a,0xca, - 0x3e,0xc8,0x22,0xed,0xa1,0x62,0x58,0xe4,0x12,0x3e,0x5e,0xbc,0xfd,0x06,0x80,0x4f, - 0xe5,0xfc,0xa9,0xc0,0x1f,0xf7,0x5f,0x0f,0x6a,0xc0,0x7f,0xe0,0xc0,0x8e,0x17,0x3f, - 0x86,0xd3,0x65,0xfe,0x0c,0x9f,0x64,0xba,0x48,0xa4,0x8f,0xfc,0xb0,0x5c,0xfc,0xe9, - 0xea,0x1a,0xb2,0x34,0xf7,0xa3,0x9f,0x75,0x0c,0x5e,0xc1,0x6d,0xb7,0xed,0x04,0x35, - 0x21,0x70,0xf0,0x7a,0xe4,0x1d,0xdc,0xfb,0xd2,0xf0,0x53,0xc9,0xa8,0x71,0xcc,0x3a, - 0x1f,0x6d,0x3a,0xd2,0x87,0x85,0x5d,0xf6,0x92,0x65,0xe2,0x85,0x3a,0x7b,0xd5,0x81, - 0xa9,0x4e,0xc8,0x39,0xe5,0xc8,0x8a,0xe1,0x60,0x5a,0x56,0x2c,0xd4,0xc2,0x84,0xee, - 0xa7,0x1f,0x96,0xc0,0xa5,0x24,0x15,0x85,0x5c,0xba,0x5c,0x0e,0x14,0xd2,0xb5,0x73, - 0x3a,0xd5,0x6a,0xda,0xcc,0x13,0x3c,0x27,0xd2,0x24,0x97,0x5f,0x64,0xde,0xe2,0x0e, - 0xf1,0xee,0x3c,0xa0,0x61,0x95,0xa0,0x96,0xec,0xc3,0x0e,0x9e,0x95,0x52,0xe0,0xfc, - 0xab,0x18,0xad,0xc1,0x4e,0xe4,0x98,0x41,0x5b,0xdf,0x61,0x34,0x3e,0x6c,0xeb,0x43, - 0xd1,0x3d,0x6c,0xeb,0x3b,0x8a,0xc6,0x47,0xb0,0x33,0x11,0x39,0x6b,0xab,0xd6,0xad, - 0x51,0x3a,0x8c,0xda,0xfa,0x5e,0x45,0xe3,0x57,0x6d,0x7d,0x78,0x43,0x8f,0x5b,0xfd, - 0x0a,0x74,0x2b,0x5a,0xbd,0x09,0x72,0x26,0x0e,0xda,0x7a,0xe7,0xa2,0x58,0x08,0x44, - 0xe5,0x39,0x7f,0x82,0xe5,0xaa,0x82,0x8d,0x91,0xdd,0x3a,0x4b,0xb8,0xdf,0x9c,0x68, - 0x4a,0x9f,0xd2,0xb4,0xa5,0xb7,0x2a,0x06,0x20,0xb7,0x7e,0x8e,0xac,0xd3,0x9b,0x66, - 0x32,0x4f,0x57,0x6f,0x18,0x7c,0xf3,0x36,0xaa,0x87,0xa9,0x4d,0xf7,0xcb,0x99,0x3f, - 0x3e,0x96,0xdc,0x08,0x1c,0xb4,0xe0,0x65,0x84,0x78,0x19,0x81,0x59,0xce,0x27,0x2a, - 0x37,0xad,0xcc,0x30,0x40,0x6e,0x18,0x84,0x51,0xdd,0xbd,0x68,0xe6,0xfb,0xe0,0x83, - 0x86,0xb3,0x7b,0x64,0xb7,0xf2,0xbe,0xbb,0x9a,0x70,0x97,0x15,0x29,0x4e,0xde,0xc1, - 0x02,0x82,0x44,0xab,0x93,0x0e,0x16,0xa5,0x47,0x90,0x0e,0xbe,0x77,0xff,0xe0,0xe0, - 0xa0,0xf2,0xbe,0xf9,0x7f,0x4d,0x53,0xb2,0x2d,0xee,0x92,0x4b,0x59,0x3e,0x1d,0x04, - 0x43,0xd3,0x5b,0xa1,0xe8,0x6e,0xd0,0xd6,0xb0,0xc6,0x5f,0xdb,0x86,0x37,0xd4,0xc1, - 0xe1,0xa0,0x2e,0x35,0x65,0x29,0x45,0xd0,0x61,0x3f,0x2a,0x7d,0x27,0x74,0xea,0xc2, - 0x7c,0x56,0x8b,0xe9,0x34,0x4b,0x62,0xa0,0xdc,0xc8,0x29,0x38,0xe3,0xa2,0xc7,0x99, - 0xa1,0x1d,0x63,0xb3,0x3c,0x0f,0x05,0x71,0x86,0x35,0x45,0xa8,0x7f,0x33,0xbb,0xf1, - 0xf3,0xb4,0x1d,0x03,0xd4,0x55,0x6a,0x7a,0xe3,0xa9,0x56,0x36,0x40,0x55,0x03,0xf5, - 0xc4,0xe8,0xb0,0x3d,0x2f,0xc1,0x25,0xd5,0x82,0xd3,0x63,0xb0,0x83,0xf4,0xe8,0xe6, - 0x97,0xb8,0x09,0x31,0xa2,0x9c,0x64,0x68,0xbe,0x6e,0xd0,0x0d,0x37,0x9a,0xc0,0xe3, - 0x03,0x38,0x25,0x6d,0xd3,0x21,0x18,0xfd,0x63,0xae,0x54,0x5a,0x81,0x35,0xd3,0x1d, - 0xdd,0xa5,0x29,0x4d,0x8b,0xb7,0x03,0xd7,0x1f,0x1d,0x6f,0x03,0x6e,0x0f,0x64,0x6e, - 0x24,0x1c,0xbe,0x28,0x38,0xb0,0x8b,0xa3,0x19,0xd0,0x6e,0x89,0x92,0x7a,0x28,0x9a, - 0x61,0xa9,0x27,0x4c,0xf8,0x4c,0x28,0x70,0x7c,0x21,0x09,0x7e,0x2b,0x4d,0x5b,0x4c, - 0xfa,0x67,0x55,0xba,0x0c,0x95,0xab,0xe3,0xe2,0xb5,0x02,0x33,0xd6,0xe2,0xca,0x53, - 0xe6,0x55,0xce,0x94,0xb0,0xd6,0x67,0x69,0xe4,0xf4,0xb8,0xc8,0x0a,0x1c,0x93,0x99, - 0x25,0x14,0xf4,0x33,0x05,0x13,0xb5,0xa0,0x47,0x47,0x56,0x29,0xdc,0xf8,0xce,0x07, - 0xa8,0x4b,0xa1,0xad,0x09,0x39,0x53,0xe6,0x77,0xb5,0xb0,0xf4,0x9d,0x9f,0x5e,0xc6, - 0x1d,0xf2,0x5d,0x83,0xe3,0x56,0xce,0xc2,0x8c,0x8c,0x87,0x7b,0xc6,0x07,0xed,0x4c, - 0x3e,0xa4,0xd2,0x1a,0xc9,0x1a,0xfc,0xeb,0x29,0xe6,0x69,0x34,0x1a,0xc6,0xe0,0x9f, - 0xcd,0x01,0xfe,0xdd,0x81,0xbd,0x08,0x36,0xcf,0x5c,0x8f,0x07,0xce,0xf3,0xd7,0xd3, - 0x61,0x3c,0xf6,0x20,0x76,0xf4,0xbf,0x18,0xc9,0x35,0xc0,0x17,0x85,0x49,0x54,0x29, - 0xd3,0x27,0x63,0x37,0x0e,0x2b,0x34,0x8e,0xf0,0xa8,0x07,0x1c,0x6f,0x4b,0x97,0x52, - 0xb5,0x0a,0x5c,0x99,0xaf,0x71,0xa9,0xb2,0x42,0x85,0xf2,0x5a,0xde,0x25,0x86,0x80, - 0x83,0xad,0xb4,0xe9,0x20,0xc6,0x06,0x47,0xa3,0x9a,0xdc,0x52,0x65,0xcd,0x79,0x6b, - 0x4f,0x79,0xab,0x32,0x76,0xc3,0x1e,0x1d,0x9d,0x42,0xdc,0x64,0x73,0x36,0x7a,0xdc, - 0x1f,0xad,0xe3,0x54,0x2a,0x29,0x30,0x8f,0x03,0xfd,0x5f,0x6d,0x23,0x8d,0xd5,0x19, - 0x01,0x72,0xcd,0x9f,0x9d,0xf2,0xe2,0x1f,0x34,0x92,0xd7,0x53,0x3a,0x60,0x99,0x6b, - 0x12,0xaa,0xdf,0x22,0x10,0x5a,0x2f,0x1f,0x64,0x57,0x67,0x88,0xeb,0x18,0xdc,0x1e, - 0x52,0xc3,0x29,0x4c,0x25,0xc9,0x06,0xa7,0x53,0x88,0x5c,0x39,0x03,0x99,0x06,0x1f, - 0x39,0xc5,0x2d,0x4a,0x94,0x4b,0x1b,0xb9,0xb2,0x59,0x12,0xc5,0x45,0x5a,0xdd,0x8a, - 0xda,0xf9,0x6d,0x99,0x0f,0x1c,0x91,0x39,0xbf,0xad,0x54,0x6a,0xbb,0x46,0xf4,0xd5, - 0xb2,0xc1,0x9b,0x80,0x1f,0xf8,0x2f,0xa0,0x0d,0x2a,0xda,0x37,0x91,0x77,0xb3,0xd0, - 0x85,0xcb,0xbd,0xa9,0x5a,0x08,0x0b,0x51,0x97,0xd3,0x8b,0xfd,0xcf,0x52,0xfb,0x50, - 0x17,0xbb,0x3f,0xae,0x4c,0x56,0x66,0x7a,0xf5,0xd6,0xab,0x89,0x90,0xd6,0xa3,0x9e, - 0x71,0x39,0xbc,0x5d,0x3e,0xbd,0x66,0xff,0xbf,0xbc,0x64,0x3f,0x84,0xff,0x4e,0x20, - 0x6b,0x14,0xe9,0xc7,0xf0,0x8e,0x93,0xf0,0xa7,0xdf,0xa6,0xd6,0xfe,0xbf,0xba,0xd4, - 0xfe,0x69,0x65,0xf1,0x7f,0x59,0x55,0x7c,0x0b,0x05,0x5b,0x2b,0xde,0x59,0x5f,0xf3, - 0x6e,0x2f,0xcd,0x5a,0xe1,0x3b,0xb2,0x95,0x2f,0xbc,0xdb,0x7d,0x62,0xd1,0x7a,0xc7, - 0x9a,0xf5,0x6e,0xd7,0xe2,0xca,0x71,0x17,0xde,0xa6,0x36,0x4b,0xe7,0x26,0x48,0x2e, - 0xe6,0x33,0x7e,0xdb,0x4b,0xe5,0xc2,0xbe,0x04,0x84,0x6c,0x72,0xba,0xbd,0x2c,0x49, - 0x7a,0x80,0x53,0x68,0x2d,0xe7,0xc1,0x09,0x7f,0x89,0x01,0x17,0xc8,0x8a,0xbf,0x73, - 0x70,0x9a,0xcb,0x94,0x2b,0x73,0xc6,0x63,0xa0,0x35,0x5c,0xc2,0xf5,0x9b,0xfe,0xa9, - 0x8a,0xb7,0xfe,0xaf,0xa4,0xce,0x54,0x8a,0x98,0x9e,0x71,0xdd,0xda,0x3e,0x75,0x1a, - 0xe0,0x35,0xc3,0x48,0xf7,0xca,0xe2,0x59,0xf6,0x3d,0xe3,0xd1,0xad,0xd6,0x62,0xe4, - 0xb7,0x82,0xec,0x31,0x1a,0x94,0x81,0x07,0xfb,0x5c,0x18,0x92,0xf5,0x06,0x15,0x70, - 0x32,0x73,0x0f,0xd6,0xf3,0xdc,0x8f,0xa9,0xec,0x46,0xa4,0xae,0xba,0x7b,0x3e,0xdc, - 0x7e,0xe7,0xc7,0x02,0xfe,0x36,0x4d,0x41,0x8b,0x3b,0xe0,0x5f,0xdc,0x0e,0x70,0xbf, - 0xcd,0xf9,0x45,0x46,0x91,0xba,0x62,0xc6,0x45,0x9e,0x33,0xb7,0xf3,0x18,0x8f,0x75, - 0x9e,0xf4,0x8d,0x50,0x8e,0x4b,0x3d,0x16,0x6c,0xef,0x6d,0xa7,0x6b,0x08,0x47,0x97, - 0x51,0x69,0x1b,0x1a,0xf9,0x05,0xb1,0x2f,0xe7,0xf0,0x75,0x1e,0xdf,0x00,0xd8,0xfb, - 0x47,0xc2,0xca,0xc6,0x02,0x4c,0x44,0x70,0x9c,0xf8,0x97,0x71,0x90,0xc7,0x74,0x40, - 0xb7,0x7f,0x1b,0x17,0x4e,0xc4,0xa3,0x82,0x3d,0x31,0x15,0x59,0x0e,0xf8,0x3d,0x9b, - 0x56,0x2f,0xad,0x2e,0xab,0xc0,0xe0,0xa7,0x1f,0x81,0xa4,0xd5,0xc2,0x5b,0x33,0x99, - 0xc9,0x26,0x39,0xd3,0x27,0x51,0x39,0x59,0x2e,0x4a,0x9b,0xe7,0x9f,0xd7,0xbb,0x6d, - 0x0c,0xc3,0xf2,0xa9,0xd7,0xc2,0x3b,0x3b,0xba,0x71,0x9f,0x43,0x07,0x70,0x11,0x18, - 0x7b,0xeb,0x6c,0x9e,0x1a,0xd8,0xb9,0xba,0xfe,0xf4,0xf6,0xdc,0xa5,0x9a,0x5c,0x88, - 0x7d,0xf7,0xf9,0x87,0xa9,0xe0,0x78,0x9e,0x13,0xdf,0x9a,0x4d,0xf4,0x79,0x0d,0x5b, - 0x63,0xcc,0x36,0x1b,0x98,0xe1,0xb1,0xf7,0x4f,0xca,0xce,0xbe,0xcd,0x73,0xb8,0xf9, - 0xbd,0x6d,0x84,0x77,0x84,0x48,0x8b,0x04,0x66,0x62,0xfc,0x75,0xb2,0x6c,0xd7,0x6e, - 0x50,0x65,0xc1,0xb2,0x38,0xe8,0xf4,0x7c,0xed,0xda,0x89,0xe3,0xe0,0xe7,0x77,0x0e, - 0x5f,0x78,0x94,0x84,0x79,0x6b,0x09,0xd5,0x51,0x23,0x33,0xf6,0x4c,0x5a,0x5d,0x78, - 0x56,0xa8,0x43,0x3a,0x53,0x8b,0x2e,0x31,0x8d,0x26,0x3b,0x35,0xa0,0x1e,0x84,0xd0, - 0xd9,0xe1,0xa8,0xd5,0x0c,0x54,0x53,0x4a,0x89,0x59,0x15,0x8c,0x3d,0x96,0x51,0x6b, - 0x17,0x62,0xa7,0x3f,0xe8,0xe1,0x1a,0x7b,0xa1,0x36,0x05,0x06,0xc3,0xdd,0xf8,0x31, - 0xa1,0x8f,0x6d,0x8f,0xc7,0x44,0x59,0x86,0xd7,0x63,0x5d,0x56,0xe1,0x64,0xb9,0x0f, - 0x93,0x5c,0x5f,0x9c,0x5f,0x6d,0x7d,0x62,0x71,0x73,0x05,0x86,0x37,0xed,0x6a,0xa6, - 0x15,0xb6,0x6c,0xb1,0xca,0x1e,0xd4,0xf7,0x97,0x4a,0xe5,0x34,0x36,0x56,0xfa,0x76, - 0x23,0x66,0x7f,0x28,0xac,0xb3,0x55,0x0a,0x55,0xc8,0x60,0xa8,0x24,0x54,0xa2,0xbf, - 0xbd,0x5e,0x78,0x5b,0x85,0xc0,0x9f,0xb8,0x14,0x0a,0xa4,0xcb,0xeb,0xb3,0xdf,0xbb, - 0x38,0x06,0xd6,0x4f,0xe9,0x72,0x9e,0xf3,0xeb,0x9b,0x57,0xe7,0x1f,0x6e,0xf6,0xce, - 0x0f,0xe3,0x41,0x7c,0xb0,0x77,0xde,0xef,0xc7,0xfd,0xb8,0xad,0xd6,0x6f,0x43,0x1c, - 0xa0,0xcf,0x86,0xb3,0x87,0xf5,0x97,0x9b,0xf7,0x80,0x5b,0x18,0x69,0x3b,0xf1,0x70, - 0x80,0x33,0x76,0x73,0x42,0xe9,0x57,0xc5,0xbc,0xfd,0x61,0x93,0x31,0x5a,0x04,0x3d, - 0xf1,0x03,0x88,0x5b,0x59,0xd8,0x4a,0x13,0x73,0x0d,0x43,0x28,0xb5,0x4f,0x9f,0x25, - 0xbb,0x4d,0x31,0x2f,0xdb,0x25,0x76,0x93,0x68,0x0c,0x0e,0x99,0xe0,0xf3,0x45,0x91, - 0xd9,0x0e,0x9e,0x02,0xef,0x10,0x57,0x13,0x36,0x13,0xee,0xab,0x3e,0x38,0x3f,0x82, - 0xea,0xe6,0x83,0x53,0x09,0x73,0xcd,0x07,0x6f,0x33,0xc3,0xf9,0xc1,0x02,0x99,0xd6, - 0x3c,0x5e,0xff,0x47,0x7b,0xff,0xda,0xde,0xb6,0xad,0xec,0x8d,0xc3,0xef,0xfd,0x29, - 0x18,0xae,0x6e,0x87,0xac,0x28,0x59,0x76,0x0e,0x6d,0xa5,0x30,0xba,0x5c,0x37,0x6d, - 0xb3,0x9b,0x26,0xd9,0xb1,0xbb,0xba,0xd7,0xed,0x78,0xf9,0x96,0x2d,0xda,0x56,0xad, - 0x53,0x45,0xf9,0x90,0x25,0xf9,0xf9,0xec,0xcf,0xfc,0x66,0x30,0x04,0x08,0x51,0xb2, - 0xd3,0xec,0xf5,0x3f,0xa7,0x57,0x2d,0x12,0x87,0xc1,0x70,0x00,0x0c,0x06,0x83,0xc1, - 0x8c,0xd0,0x54,0x0c,0x3b,0x6c,0x65,0xb5,0x76,0x55,0x6b,0xe8,0x73,0x1c,0x42,0x0c, - 0x06,0xac,0x41,0xc0,0x8a,0x6a,0x6f,0xed,0x4c,0x33,0x9a,0xf2,0x34,0x13,0xd4,0x90, - 0xc3,0xbd,0x60,0xd8,0x08,0x7e,0xec,0x53,0x59,0xe8,0x36,0x91,0xfa,0xfa,0xbd,0x88, - 0xf3,0xb0,0xad,0x55,0x2f,0x3f,0x63,0x11,0xa3,0xc4,0x32,0x56,0x9d,0x62,0xfe,0x5f, - 0xc3,0xc3,0x18,0x7d,0xd7,0xbf,0xcf,0xc5,0x18,0x80,0xff,0x9f,0xee,0x63,0x0c,0x48, - 0xfc,0x5f,0xc8,0xc9,0x18,0xd0,0xf9,0x3f,0xdd,0xcb,0x18,0x90,0xf8,0x7f,0x83,0x9b, - 0xb1,0xff,0x47,0x38,0x12,0x53,0x23,0x9f,0xed,0xfa,0xf6,0x13,0xdc,0x0b,0x9a,0x66, - 0xea,0xdc,0xcb,0xba,0xfb,0x12,0x9f,0x87,0x6b,0x9d,0x8a,0x59,0xc3,0x7f,0xa8,0x53, - 0xb3,0x81,0x3a,0x41,0xa4,0x7d,0x03,0xe0,0xf7,0xb4,0x93,0xc4,0xe5,0x18,0xf8,0x99, - 0x7e,0x7b,0x1b,0x0f,0x5f,0x72,0xff,0x6b,0xbb,0xb9,0xf3,0xd4,0x4e,0x29,0x35,0xe8, - 0xa8,0x3e,0xf5,0xb6,0x33,0x06,0xe5,0x50,0x2c,0xac,0xd0,0x64,0x1b,0x2d,0xf6,0xd5, - 0x70,0xf5,0xbd,0xae,0x11,0xdc,0x26,0xb1,0xfc,0x31,0x20,0x48,0xf9,0x0c,0x17,0xb8, - 0x71,0xc1,0x20,0xae,0xac,0x22,0x7d,0x61,0x7d,0xe7,0x44,0xc6,0x24,0x38,0x7e,0xe8, - 0xe1,0xb7,0xaf,0x2b,0xee,0x42,0xb2,0x1d,0xc1,0x28,0xa2,0xda,0x82,0xef,0xf3,0x1d, - 0x04,0xf4,0xc6,0x1f,0x40,0x74,0x73,0xa5,0x1f,0x4f,0xdc,0xaf,0x9f,0xeb,0x71,0x40, - 0x3d,0xdc,0xd2,0x58,0x01,0x5f,0x2e,0x35,0xf0,0x06,0xc9,0x68,0x40,0xbc,0xe5,0xd2, - 0xb3,0x85,0x7e,0xdf,0x22,0xce,0xaa,0xa5,0x87,0xad,0xe2,0x6a,0xae,0x24,0xdc,0x00, - 0xd5,0xb9,0x72,0x9d,0x56,0x60,0x07,0xdb,0x71,0x77,0x66,0xe2,0x6e,0xf9,0xb1,0x4a, - 0x3c,0xc5,0x28,0xfa,0xda,0x8f,0x3b,0x08,0x49,0x70,0xd5,0x3d,0x19,0x0e,0x55,0x0a, - 0x3a,0xe8,0xe3,0x83,0xba,0x14,0x57,0x54,0xc0,0x64,0xba,0x93,0x20,0xfa,0xe5,0xfb, - 0x98,0xc1,0xbe,0x90,0x60,0x9b,0x0c,0x8a,0x1a,0x9b,0x5e,0xd6,0x91,0x6f,0x5d,0xa9, - 0xf3,0x09,0xcf,0x96,0x14,0xd2,0x2b,0xd6,0xb8,0xb5,0x89,0x03,0x10,0xbd,0x5e,0x50, - 0x0d,0x67,0x84,0x72,0xd5,0x80,0xee,0x39,0xae,0xc5,0xa6,0xa0,0x2e,0xf4,0xf4,0xcf, - 0x2e,0xf2,0xca,0xdd,0x0c,0xca,0x9a,0xed,0xcc,0x83,0x1d,0x6e,0x61,0x6a,0xf1,0x74, - 0x0d,0x3e,0x65,0xb3,0xc6,0x7d,0x43,0xe3,0x74,0x70,0xbf,0x78,0xa7,0x4d,0xbb,0x91, - 0x87,0xbd,0x72,0x70,0xf0,0x8f,0x6f,0x94,0x27,0x3f,0x53,0xe2,0x39,0x85,0x9e,0x94, - 0x9c,0x4f,0x96,0x3c,0xa5,0x7b,0xeb,0xa5,0x83,0x97,0x05,0x5e,0xe7,0x0b,0x73,0x0f, - 0x13,0x3a,0x36,0x8a,0x09,0x84,0xe5,0xf8,0x77,0xf6,0xb4,0x80,0x29,0xb4,0x39,0xe8, - 0x4e,0xa7,0xed,0x80,0x21,0xf9,0x93,0xd4,0x47,0xe2,0xf3,0x84,0x1b,0xfa,0xf9,0x39, - 0x1b,0x4c,0xd0,0xc8,0x05,0xfd,0x2a,0xf0,0xcf,0xfb,0x42,0x7b,0x82,0xf4,0xb9,0x9f, - 0xd9,0x3f,0x8b,0x1e,0xd1,0x63,0xe3,0xe4,0x2a,0xff,0x14,0xd3,0xc3,0x87,0xab,0x51, - 0x74,0xf8,0xd8,0xc2,0x7b,0x7c,0x44,0x88,0xd9,0xd7,0xff,0xf1,0x6f,0xe7,0x7b,0xe3, - 0xf8,0xf8,0x53,0x3c,0xac,0x15,0x4b,0x34,0xb4,0x94,0x7c,0xb7,0xbe,0x55,0xee,0x12, - 0x9d,0x40,0x53,0x94,0xef,0x65,0x20,0x0a,0x94,0x63,0xd7,0xa4,0x49,0x6b,0x6c,0x9f, - 0x8b,0x00,0x40,0xfe,0x88,0x34,0x91,0x79,0xc4,0x27,0xbe,0x0e,0x4d,0x5f,0x60,0x77, - 0x11,0xee,0x8f,0x3c,0xc1,0xb0,0x5a,0x34,0xaf,0x96,0xe0,0x37,0xf2,0x49,0x36,0x18, - 0xf0,0xce,0xb0,0x10,0x06,0xd9,0xd5,0x06,0x49,0x4e,0x10,0x2f,0x68,0xd7,0x30,0xf6, - 0x76,0xd6,0x40,0x22,0xe8,0xf2,0x2e,0x90,0x24,0x09,0x6f,0xa1,0xd2,0x0f,0x40,0xad, - 0xcf,0xef,0xc6,0x0d,0xb7,0x1b,0xf7,0xd9,0x4f,0x3b,0xfa,0x71,0x7a,0xe5,0x4b,0xe5, - 0x95,0x9d,0x69,0x82,0x69,0x00,0x23,0xe1,0xec,0x14,0x55,0xe3,0xe5,0x41,0xf7,0xe4, - 0xc5,0x16,0x1e,0x02,0xa5,0x8f,0xa1,0xa9,0x53,0x66,0xf3,0x0a,0x33,0x51,0x8a,0x49, - 0x42,0xcf,0x26,0x50,0xb7,0xe6,0xf0,0x39,0x20,0xd5,0x4a,0xb0,0x5f,0xe5,0xa7,0xa6, - 0x0c,0x8d,0xe6,0x61,0x3f,0xcf,0x4b,0xa0,0x25,0x0c,0xc2,0x90,0xbe,0xac,0x4f,0xed, - 0x22,0x48,0xa7,0x58,0x0f,0xd0,0xd7,0x40,0xaa,0x92,0xfb,0x8c,0x8a,0x8d,0xf7,0x59, - 0x15,0x7e,0xe4,0xb7,0x34,0x12,0x82,0xfd,0x60,0x13,0xcf,0x5d,0xc6,0x82,0xbe,0xa0, - 0x3f,0x8a,0x84,0x3a,0x49,0x42,0x50,0x1c,0xac,0xe3,0x79,0xd5,0xbb,0x07,0x67,0x4a, - 0xa1,0x97,0xa6,0x33,0xd2,0x8d,0x8a,0x64,0x81,0x97,0xf5,0x42,0xc5,0xd0,0x62,0xe4, - 0x89,0x10,0xb4,0xb1,0x70,0x9d,0xcc,0xa8,0xe0,0xb8,0x76,0x8e,0xda,0x98,0xbf,0x3a, - 0xc1,0xdc,0xed,0xa0,0x06,0x6d,0x90,0x63,0xd7,0x30,0x70,0x63,0x4c,0xc0,0x9d,0xd8, - 0xc9,0xa7,0x92,0xc3,0xf5,0xdc,0x94,0x10,0x5b,0x4d,0x1a,0xac,0xd3,0x2b,0x7f,0xb9, - 0x31,0x91,0x90,0xc3,0x97,0xa6,0xba,0xd6,0x14,0x1a,0x7a,0xfb,0xdb,0xfb,0xe9,0xf8, - 0x45,0xdc,0x8c,0xf5,0x12,0xbc,0x4f,0x05,0xa2,0x4c,0xfe,0xdc,0xee,0x51,0xff,0x7d, - 0xed,0x72,0x48,0x01,0xb4,0x8b,0x9e,0xda,0xc3,0x4b,0xd1,0xa4,0xbf,0x7c,0x17,0x71, - 0x98,0x95,0xf6,0x74,0xd8,0x02,0x75,0xe2,0xa0,0x3f,0xd3,0x8d,0x25,0x16,0x02,0x25, - 0x35,0xea,0xad,0xf6,0x05,0x54,0xac,0xee,0xd0,0x53,0xf8,0xa3,0xb6,0x3f,0x2a,0xe8, - 0x7d,0x9f,0xa9,0x02,0x22,0x0a,0x2b,0x8f,0xc4,0x63,0x25,0x47,0x37,0x81,0x7c,0xa5, - 0x58,0x76,0xcb,0x11,0x17,0x75,0x2c,0x2c,0xed,0xbf,0x9e,0x62,0xff,0xe5,0x87,0x16, - 0x97,0xd0,0x2e,0xb6,0xb0,0xef,0x64,0x74,0x39,0x98,0x30,0x51,0x53,0xac,0xce,0x33, - 0x3f,0x9a,0x82,0x89,0x05,0x33,0x1e,0x54,0x08,0x59,0xcf,0x96,0xa2,0x91,0x7e,0xd7, - 0x2e,0x85,0xa8,0xda,0xf1,0x63,0x12,0x9d,0x9d,0xc7,0x40,0x6e,0xd0,0x27,0x06,0x38, - 0x61,0xe7,0x79,0xaa,0xb5,0x25,0x43,0x0c,0xbc,0xef,0x61,0xeb,0x31,0x40,0x4a,0xac, - 0x9e,0x5d,0x69,0xb5,0x18,0x41,0x1b,0x75,0x26,0x0a,0x2f,0xb1,0x76,0x6d,0xbc,0x38, - 0x99,0xea,0x0a,0x55,0x21,0xfd,0x55,0xca,0x7e,0xe4,0xfa,0xbf,0x9b,0x5f,0x66,0xbd, - 0x24,0x38,0x55,0xaf,0xb3,0xec,0x17,0xe6,0x77,0xe3,0x63,0xff,0x35,0x28,0x41,0xd3, - 0x8a,0xf1,0xd9,0x42,0xee,0xfe,0x8c,0xf6,0xf4,0xc5,0x9d,0x2b,0xa4,0xdb,0x2d,0xfa, - 0xa0,0x2f,0x1f,0xc2,0x21,0x28,0xf6,0xbb,0x67,0x34,0xa4,0xa0,0x31,0xdb,0xbb,0x20, - 0x35,0x5a,0xe6,0xbb,0xae,0xb0,0xc5,0x7f,0x82,0x57,0x0d,0x82,0x5d,0x81,0xf5,0x37, - 0x93,0x5b,0xa7,0xd3,0xaf,0xa6,0x03,0x92,0x93,0x66,0xb3,0x49,0x6b,0x6b,0x8b,0x6e, - 0x4d,0x34,0xc8,0x06,0xb2,0xf1,0xb4,0xb1,0x0d,0x24,0x0c,0xb4,0xad,0xf1,0xa0,0x42, - 0x89,0x58,0x71,0x2e,0xb2,0xfd,0x94,0x20,0x7b,0x1f,0x03,0x2c,0x1c,0x0c,0x1f,0xe7, - 0xf8,0x5e,0xeb,0x6f,0x01,0xcd,0x58,0xfd,0xc7,0x3f,0xdc,0x28,0x1a,0x01,0xef,0xe5, - 0xfb,0x39,0xdc,0xf8,0xc2,0xee,0xa9,0xaf,0x57,0xe8,0xad,0x5e,0x52,0x3d,0x37,0xa8, - 0x06,0xd3,0x74,0xa5,0x8e,0xa9,0xc4,0xe8,0x03,0xfa,0xf0,0xfc,0x37,0xbd,0xa6,0x99, - 0x99,0x4b,0xa5,0xd3,0x69,0x46,0xc4,0x44,0x5c,0x68,0x58,0x42,0x7d,0xa6,0x93,0xae, - 0xe6,0x4a,0x27,0x5d,0x3d,0x8a,0xc0,0xc2,0xd1,0x11,0xce,0xb3,0xd9,0xab,0x41,0x86, - 0xc7,0xef,0x3f,0xbd,0xee,0x45,0x8f,0xcd,0xec,0x7a,0x1c,0x37,0x98,0x82,0x6f,0xfa, - 0xec,0x9a,0x65,0x48,0x5f,0x13,0x3d,0x86,0x54,0xfc,0xf8,0x61,0x5e,0xbd,0xd0,0xa9, - 0xf0,0x84,0x66,0xbd,0x79,0x09,0xe6,0xf7,0x4d,0x6e,0xd1,0x46,0xe8,0xf4,0x46,0xd1, - 0x65,0xd6,0xa2,0x4d,0xca,0x74,0x7f,0xf2,0xd4,0x46,0xef,0xc6,0xb3,0x72,0x9e,0x8a, - 0x09,0xcf,0x5e,0xcb,0x02,0x0e,0x2f,0xef,0xb6,0x26,0x7e,0xef,0x74,0x2b,0xee,0x06, - 0x73,0x92,0x89,0x3e,0x71,0xcb,0x0e,0xf3,0xf3,0x02,0x81,0x25,0xe7,0xc5,0x1e,0x13, - 0x0a,0xcd,0xa7,0x4f,0x3c,0xc1,0xdd,0x42,0xeb,0x4f,0x56,0x0f,0xce,0xb7,0xcb,0xae, - 0xef,0x5a,0x98,0xe2,0x2f,0xba,0x65,0x08,0x90,0x4d,0x2f,0x43,0xed,0xe3,0x8a,0x0e, - 0x01,0x2a,0x7e,0xd8,0x7f,0xa0,0xd6,0x55,0xf4,0x56,0xa0,0xd0,0x76,0x40,0x3c,0xaf, - 0x00,0xe1,0xa2,0x71,0x3a,0xbe,0x82,0x86,0xab,0xaa,0xab,0x69,0x08,0xf7,0x27,0x74, - 0xd2,0x1a,0x22,0x6c,0x88,0xb1,0x34,0x6c,0x6f,0x10,0xd5,0x82,0xfd,0x57,0x6f,0x0f, - 0x5e,0xbf,0x7d,0xf5,0x26,0x0d,0xbf,0x36,0xff,0x24,0x83,0x4a,0xa5,0x73,0x58,0x2f, - 0xb6,0xc2,0x30,0x61,0x37,0xab,0xbd,0x16,0x8f,0xb6,0x84,0x4c,0x08,0xe1,0x0b,0xd1, - 0xbe,0xed,0x0d,0xfa,0xe6,0x05,0xaa,0xa6,0xf7,0xf9,0xe5,0xf3,0xa7,0xe6,0x5d,0xd5, - 0xb7,0xfb,0xe2,0x48,0xb3,0x00,0x31,0xca,0xb2,0x5e,0x6e,0xb4,0xa2,0x9a,0xc6,0x86, - 0xd1,0xea,0x18,0xcc,0xa4,0xe5,0xea,0xbb,0xd7,0x79,0x77,0xda,0x26,0xf1,0x3c,0x6f, - 0x35,0x93,0xd3,0xb3,0xf3,0xd6,0x88,0xac,0x43,0x12,0x58,0xc1,0xb5,0xe6,0x77,0x49, - 0xaf,0x3f,0x9d,0x7d,0xc2,0x83,0xf8,0x51,0xcf,0x5b,0x87,0x47,0xc9,0x08,0x7b,0x72, - 0x94,0xe6,0xcd,0x3c,0x8e,0xd3,0xa6,0xf4,0x02,0x69,0xb5,0x35,0x87,0x9a,0x01,0x65, - 0x58,0x4d,0x40,0x0f,0x77,0x09,0x96,0xe9,0x03,0xea,0x89,0x6c,0x86,0xcf,0xc7,0x9b, - 0xd6,0xc0,0xf3,0xab,0xc9,0xf8,0xf4,0x82,0x9e,0xc5,0x55,0x8d,0xbe,0x19,0xaf,0x80, - 0x94,0x0f,0xde,0xab,0xdf,0x6a,0x0a,0xbd,0x21,0x83,0xa5,0xbd,0xee,0x04,0xf6,0x16, - 0x82,0x2b,0x48,0xa5,0x14,0xc0,0xc5,0x13,0xde,0x86,0x69,0xa5,0x3b,0x8a,0xfc,0x77, - 0x35,0x92,0x63,0x95,0xaf,0xa2,0x3c,0x9e,0x9b,0xe9,0x5e,0x70,0x0c,0x92,0x86,0xa7, - 0x9f,0x44,0xed,0x38,0x9e,0x52,0x81,0x3b,0xa7,0xbc,0x5b,0x61,0x77,0x3a,0xa5,0x0b, - 0xc2,0xf0,0x5d,0x33,0x86,0x80,0xd3,0xc8,0x07,0x60,0xfb,0x50,0x77,0x46,0xd5,0xb0, - 0x20,0xb7,0xe6,0xb1,0x0b,0x8f,0x25,0x82,0x68,0x18,0xcf,0x31,0x28,0x66,0xe9,0x57, - 0x51,0xf8,0x37,0x4e,0x0a,0xe3,0xf6,0xac,0x01,0xd6,0xb7,0x27,0x31,0x8f,0xd3,0x21, - 0xbd,0x5b,0x7e,0x45,0xb3,0x25,0xe2,0x2d,0x3c,0x95,0xe3,0x9d,0xa5,0xb9,0xe3,0x1c, - 0xcd,0x1a,0xc7,0x08,0x0c,0x49,0x7f,0x53,0xea,0x1b,0x4d,0xd5,0xe6,0xa2,0x78,0x3e, - 0x5b,0xe2,0x7a,0x0a,0xe8,0x2e,0xd9,0xa1,0x0b,0xcd,0x2e,0x72,0x24,0xdf,0x39,0x5f, - 0x0b,0xb3,0xd6,0xd1,0x39,0x25,0x50,0x3d,0xde,0x84,0x45,0x5b,0x87,0x9b,0x2f,0x5e, - 0x86,0x47,0x5b,0xe7,0x49,0xd1,0xc0,0xa9,0x16,0x9f,0x87,0x9b,0x61,0x2b,0xe4,0x83, - 0xe4,0x30,0x09,0x5f,0xe0,0x79,0x30,0xc3,0xe3,0x4b,0x3c,0x9e,0xe3,0xf1,0x71,0xf8, - 0x98,0x1e,0xff,0xbc,0x1a,0xd3,0xcb,0xdd,0xe1,0xe9,0xd1,0x9d,0xdb,0x76,0x85,0x7e, - 0x9f,0x04,0xca,0x78,0xce,0xb3,0x87,0x77,0xa0,0x69,0x35,0x87,0xe7,0x72,0x48,0xda, - 0x9d,0x11,0xc2,0x24,0x28,0xd2,0x07,0x96,0x8e,0x14,0xc2,0x38,0x6e,0x6f,0x40,0x2f, - 0xc0,0x50,0x62,0x41,0x57,0x66,0x25,0x08,0x91,0x72,0x72,0x83,0x25,0xd6,0xd4,0x39, - 0x23,0xa1,0x3a,0x36,0x03,0x05,0x3b,0xb2,0xf9,0x6d,0xb9,0x45,0xd0,0xb4,0xdb,0x6b, - 0x52,0xee,0x67,0x30,0xc5,0x56,0x88,0x83,0x09,0x53,0x26,0xf7,0xd0,0xb3,0xc7,0x20, - 0x61,0xc2,0x75,0x44,0x42,0x6d,0x99,0x6d,0x70,0x5c,0x5d,0x4b,0x77,0x17,0x61,0x12, - 0x2d,0x37,0x14,0xd7,0x42,0xd9,0x6d,0x14,0xe8,0xc5,0xfa,0x09,0x1c,0x9c,0x2c,0xa2, - 0x57,0x4b,0x6f,0xf1,0x3e,0xbf,0x3b,0x79,0x45,0x0b,0x2d,0x2c,0x8c,0x22,0xad,0x55, - 0x74,0xff,0xd6,0x3f,0x0f,0x3f,0xde,0xee,0x34,0xeb,0x1f,0x6f,0xbf,0xc9,0x8e,0xe6, - 0xdf,0x26,0xdb,0xcf,0xee,0xbe,0xda,0x6a,0xc0,0xcf,0xa9,0x2d,0xeb,0xc0,0xbb,0x9a, - 0x90,0xca,0x2d,0xdb,0x87,0x44,0xb0,0x6f,0x22,0xe4,0x45,0xa6,0xf7,0x72,0x24,0xa6, - 0x34,0xfe,0xc0,0x00,0x41,0x63,0x4e,0x08,0x93,0x13,0x68,0xf0,0xa7,0x3c,0x07,0xbc, - 0xd0,0x7a,0x84,0xaa,0x64,0x3a,0x83,0x57,0x06,0x48,0x24,0x2b,0x4e,0xf2,0x88,0x6b, - 0xd8,0x72,0x6e,0x27,0x60,0xbe,0x4c,0xcc,0x59,0xf5,0xfb,0x6c,0x04,0x49,0xb5,0x13, - 0x71,0xa2,0x79,0x7b,0xaf,0x0e,0xf3,0x09,0x19,0xd0,0x7d,0xa3,0x13,0x32,0xe2,0xa5, - 0x13,0xd9,0x60,0x82,0xc2,0xec,0xd1,0x8e,0xe3,0x8d,0xf4,0x67,0x9a,0x93,0x27,0xf4, - 0x84,0x58,0x24,0x8e,0x5b,0xec,0xec,0xc6,0x8f,0x87,0x17,0x6e,0xb4,0x56,0xb5,0x89, - 0x4e,0xfe,0x0b,0x8d,0x6a,0x93,0x2c,0xc7,0x76,0xcb,0x9d,0xdd,0x86,0xc7,0x57,0xcf, - 0xdb,0x57,0x95,0xa3,0xaf,0x40,0xae,0x52,0xe9,0x61,0xc9,0x6a,0xdc,0xd7,0x22,0xf7, - 0x21,0x33,0x22,0xa6,0x13,0x8b,0xe5,0x82,0x16,0x84,0xc9,0xd8,0xe2,0x0b,0xd9,0x93, - 0x75,0x3b,0x7c,0x5c,0xa3,0x5d,0xdb,0x08,0x63,0x43,0x17,0x1d,0x25,0x18,0x10,0xdc, - 0xfc,0x71,0x31,0x70,0x4b,0x94,0x41,0x90,0x8f,0x75,0x71,0x07,0xc3,0x0a,0x78,0x38, - 0xd8,0x3b,0x16,0xa0,0x12,0x32,0xb1,0x04,0x91,0x40,0xa1,0xc0,0x5f,0x26,0xd9,0xe7, - 0xa3,0x32,0x1a,0x7b,0x1f,0xe7,0xa1,0x22,0xbe,0x24,0x25,0x70,0x22,0x5d,0x2a,0x00, - 0x7c,0x0f,0x76,0x81,0x67,0xe6,0xf7,0x4e,0x41,0x5a,0x00,0xbb,0x1a,0x59,0x47,0x7c, - 0x46,0xf2,0x38,0xa5,0x6f,0xea,0x63,0x6e,0x62,0x5e,0xf0,0x5a,0xde,0x50,0xa0,0x8b, - 0x45,0x48,0x85,0x68,0x89,0x0b,0x0f,0x97,0x1d,0x99,0x1d,0x85,0x31,0x31,0x8e,0xe9, - 0x2b,0xba,0x9e,0x64,0xd7,0x93,0x6c,0x40,0x73,0x3a,0x1b,0xdc,0x33,0x2d,0x17,0x8b, - 0x47,0x45,0xab,0x71,0x1b,0xe5,0xdd,0xe9,0xe9,0x73,0x1e,0x5b,0xd4,0x25,0x8d,0x98, - 0x3b,0x5c,0x69,0xcc,0xc9,0xd2,0xd0,0xb4,0xf9,0x27,0xd9,0x17,0x77,0xa5,0x85,0x4c, - 0xfc,0xb1,0xcc,0x23,0xf9,0x63,0x74,0x39,0x32,0xf3,0x38,0x82,0xf4,0x16,0xcf,0xb1, - 0xa0,0x2c,0x71,0xb4,0xcd,0x4d,0x64,0xca,0x5f,0xcc,0x7c,0x9d,0xf2,0x8f,0xd2,0x94, - 0xa2,0xcb,0x66,0x08,0x67,0xd2,0xa3,0xaa,0x15,0xfc,0x89,0xd9,0x50,0xbb,0x9a,0x5f, - 0xf8,0xd0,0xda,0x95,0xac,0x16,0x88,0xbb,0xa8,0x93,0xaa,0x78,0xf6,0xf7,0x6c,0xaa, - 0x3c,0xf8,0xec,0x06,0xdd,0x7f,0x76,0x83,0x2e,0x4f,0x86,0xe9,0xd6,0x3f,0xa3,0xeb, - 0xce,0xc7,0x5e,0xed,0x63,0x43,0xff,0x44,0x9d,0x16,0xff,0xc6,0x9d,0x78,0xab,0x91, - 0xdd,0x66,0xa7,0xd1,0xd9,0x4d,0x6c,0x56,0xc9,0x74,0xd8,0x19,0x1e,0x6e,0x1f,0xb5, - 0x22,0xae,0x7f,0x35,0xba,0x1c,0x21,0xc2,0x11,0x8e,0x6b,0xa0,0xf6,0x92,0xd5,0x75, - 0xab,0x4e,0x7b,0xcc,0xa8,0xbe,0xf8,0x2a,0x96,0x45,0x02,0xd5,0xe3,0xbc,0x96,0x86, - 0x48,0x0f,0xdb,0x81,0xf3,0x6f,0x6b,0x2b,0x78,0x77,0xb0,0x7b,0xbc,0xf7,0xf3,0xee, - 0x5b,0x12,0x95,0x8f,0x0f,0x76,0x7f,0x4a,0x4f,0xb2,0x59,0x17,0x05,0x37,0xf8,0x46, - 0x20,0x83,0x43,0x52,0x25,0x3c,0x64,0x08,0x40,0x40,0xea,0x06,0x5c,0x17,0xb6,0x90, - 0x7a,0x26,0x9c,0x10,0x00,0x3e,0x64,0xde,0x30,0x4b,0x19,0x7d,0x39,0x4f,0xad,0x4e, - 0x4e,0x6b,0x64,0x14,0xd6,0xf4,0xbd,0x16,0xc6,0x61,0x2b,0x2f,0x2f,0x8b,0x93,0x7e, - 0x04,0xa7,0xfe,0x09,0x9d,0xac,0xe6,0x44,0x3b,0xfc,0xa4,0xf8,0xb3,0x58,0xcc,0xef, - 0x84,0x1c,0xe8,0x0f,0x96,0x52,0x53,0xe6,0x2d,0xfc,0x28,0x02,0x06,0xca,0x91,0x38, - 0x48,0x5c,0x2f,0xb6,0x8f,0xd8,0xb1,0xd7,0xd9,0x8d,0x6c,0xd8,0x06,0xc2,0xfd,0x77, - 0xfb,0x01,0x67,0xe4,0x50,0x6d,0xd3,0x7c,0xfb,0xf9,0x80,0xec,0xea,0x76,0xdf,0xbf, - 0x0e,0x7e,0x7a,0x75,0x40,0x2c,0x85,0x6e,0xf7,0xb2,0x3b,0xd5,0x1c,0xc4,0xcd,0x01, - 0x17,0xb0,0xd4,0x25,0xcd,0xe6,0xa6,0x51,0x8d,0xec,0x92,0x3d,0x21,0x4f,0xa9,0x29, - 0xec,0x82,0xa7,0xa6,0x9b,0xc9,0x51,0x5e,0x0a,0x7e,0xee,0xe5,0xd2,0xf0,0x60,0x20, - 0x6c,0xa5,0x3c,0x48,0xa9,0x94,0x79,0x6c,0x6f,0x54,0x4b,0x8d,0x28,0xd1,0x05,0x8c, - 0x88,0xc4,0x44,0xb7,0x7d,0x1e,0x67,0xba,0x5d,0xce,0xe8,0xbc,0xde,0xa1,0x56,0x03, - 0x2e,0x5d,0x2d,0x94,0xa9,0xcc,0x92,0xa9,0xb1,0xbe,0xa7,0x69,0xf2,0xb4,0xb9,0x1d, - 0xcf,0x29,0xc9,0x52,0x30,0x75,0x68,0x18,0x43,0xa6,0x79,0x83,0x57,0x42,0xb7,0x20, - 0xf4,0x74,0x3a,0x9e,0xf2,0x27,0xf1,0x53,0x14,0x22,0x91,0x86,0x9c,0xe6,0x29,0x74, - 0xc0,0x2e,0x27,0x0e,0xb2,0x5d,0x7a,0x4d,0x8b,0xb6,0x1e,0xb9,0x6d,0xb5,0x67,0x17, - 0xa4,0xa5,0xb0,0x2d,0x14,0xdf,0x34,0x6d,0xfc,0x91,0x83,0x02,0xd4,0x77,0x33,0x97, - 0xf1,0xe9,0xb7,0x8c,0x2f,0x63,0xa9,0xea,0xa0,0x74,0x35,0xc2,0xfd,0x30,0xf0,0x5c, - 0xf1,0x0a,0x2b,0x46,0x56,0x6a,0xa0,0x45,0xc8,0x2a,0x70,0x8c,0xa0,0x3b,0x9f,0x4c, - 0x7f,0x08,0xe8,0x47,0x80,0xbd,0xb9,0xa9,0xdf,0x43,0xd8,0xee,0x34,0x77,0x4c,0xaf, - 0x66,0x0e,0x01,0xfe,0x68,0x64,0xf8,0x5d,0x2c,0xa2,0x90,0x07,0x4e,0x58,0xd3,0x2a, - 0x24,0xe6,0x66,0x4a,0x0d,0x4d,0xa3,0x14,0x62,0x76,0xb4,0xab,0xfd,0x43,0x7e,0xe9, - 0x9d,0x0e,0x57,0xe8,0x8d,0xfe,0x1a,0x1a,0x64,0x4e,0x8f,0xfe,0x01,0xfc,0x96,0xd8, - 0xe0,0x64,0x9c,0xcf,0xa4,0x9b,0x11,0xa5,0x5b,0x05,0x44,0x3b,0x55,0xe6,0xc3,0x8c, - 0x64,0x92,0x5e,0x2b,0x24,0x63,0xca,0x83,0x30,0x91,0xf0,0xc9,0x79,0x6b,0x1e,0x1a, - 0x8e,0x5f,0x3f,0xf8,0x34,0x81,0x98,0x0a,0x0f,0x91,0xc6,0xe2,0x7d,0x0b,0x54,0x0e, - 0xef,0x18,0x60,0xeb,0x3f,0xf7,0xdf,0xbd,0x6d,0xe4,0xbc,0xdb,0x20,0x73,0xf4,0x88, - 0x1b,0x29,0xed,0x0d,0x86,0x97,0x1f,0xb2,0x3f,0x5f,0xf7,0x94,0x97,0x75,0x99,0x1c, - 0xbf,0xd1,0x1a,0xf5,0x2d,0xef,0xc8,0xa2,0x6f,0x85,0x05,0x99,0x99,0x71,0x3a,0xfd, - 0x34,0x99,0x8d,0x37,0x37,0xe5,0x17,0x3b,0x83,0x0f,0xec,0xe2,0xf9,0xef,0x7c,0x63, - 0x37,0xae,0x4e,0x8e,0xba,0xbc,0x50,0xe5,0x7c,0xd1,0x37,0xe2,0x3d,0x47,0xda,0x6c, - 0xf7,0x5f,0x7c,0xdb,0xee,0xd7,0x6a,0x71,0xf7,0xb0,0x7f,0x94,0xfe,0x4a,0xdf,0xda, - 0xe0,0xd3,0xf1,0x88,0x1f,0xa7,0x5c,0x3d,0x8a,0xbf,0xa6,0xcb,0x92,0x54,0x79,0xc5, - 0x1e,0x71,0xd8,0x9d,0xc8,0x0e,0xb1,0x6b,0x37,0x4d,0x27,0xf1,0x5c,0x8a,0xd3,0xe3, - 0x8b,0xed,0xe7,0x9d,0xb0,0x49,0xd4,0x21,0x01,0xfe,0x84,0x56,0x53,0xb3,0xeb,0xda, - 0x26,0x90,0x18,0x2b,0x90,0xf9,0x22,0xca,0xf3,0x98,0x14,0x8d,0xb2,0x1f,0x33,0xb9, - 0x6f,0x40,0x54,0xc1,0x12,0xfe,0xf8,0x50,0x6d,0x5a,0x8e,0x1e,0xff,0x95,0x85,0x1b, - 0xab,0x19,0x34,0x00,0x9b,0x6f,0xd9,0x6e,0x28,0xa2,0xb2,0x00,0x98,0x67,0x9c,0x1c, - 0xc7,0x66,0x58,0x80,0x32,0xa0,0x01,0x6d,0xbf,0xa7,0x3d,0x16,0xdd,0x97,0xae,0x60, - 0x4b,0x67,0x14,0x85,0xe2,0xe2,0xe9,0x01,0x8d,0x47,0x74,0x03,0x77,0x01,0x7a,0xc6, - 0xb1,0x08,0x26,0x2a,0xab,0x28,0xec,0xea,0x2f,0x5b,0xf7,0x61,0x94,0xb2,0xa4,0x38, - 0x89,0xf1,0x29,0x42,0x34,0xdf,0x10,0xae,0x8a,0x7a,0xda,0x06,0x29,0xc3,0xde,0x88, - 0x45,0x1c,0x01,0x2d,0xb4,0x33,0x1d,0x52,0xd0,0x3c,0x7f,0xe2,0x40,0xf4,0x0d,0xc8, - 0x56,0x82,0xf4,0x25,0x23,0x17,0xea,0x46,0x27,0x08,0xff,0x67,0x0d,0xcf,0x20,0x3a, - 0x3d,0x14,0xa6,0x0a,0x43,0xe8,0xe0,0x72,0x30,0xa8,0x78,0x2d,0xa5,0x4b,0x6a,0x27, - 0x19,0x08,0x48,0x16,0xb5,0x96,0xae,0x51,0x83,0x3e,0x1d,0x8c,0xa6,0x44,0xab,0xbf, - 0x21,0x9a,0x81,0x71,0x61,0x76,0xe8,0xc4,0x0a,0x40,0x27,0xb4,0xa9,0xaa,0x94,0x8c, - 0xe5,0x47,0xb5,0x17,0x06,0x2b,0xb1,0xdc,0x88,0x7d,0x1d,0x09,0x50,0x91,0xd9,0x22, - 0x02,0x9a,0xa8,0xd7,0xca,0xbb,0x7e,0x58,0xa1,0xac,0xc3,0x00,0xf9,0x8a,0x82,0x29, - 0x1b,0xe3,0xb7,0x0a,0x09,0xa4,0xaf,0xc2,0x42,0xc9,0xf7,0x64,0x7d,0x81,0x7c,0x36, - 0xb9,0xa7,0x84,0x67,0x36,0xb3,0xbe,0x70,0x29,0x14,0x74,0x5c,0x1a,0x5f,0xe1,0xe7, - 0x04,0x86,0xae,0xf4,0x1d,0xed,0x7a,0xfa,0x0e,0x28,0x91,0xeb,0xbe,0xd9,0x7d,0xdb, - 0x08,0xb5,0x71,0x1b,0x09,0xd3,0x6f,0x9c,0xe3,0x62,0xa2,0x41,0x89,0xfc,0x88,0xe6, - 0x73,0x37,0x4c,0xa6,0xc2,0x28,0x87,0x06,0xf3,0x80,0x48,0xe4,0x16,0x2d,0xe9,0xc5, - 0x79,0x89,0x1b,0x7d,0x28,0x03,0x7e,0x3e,0xf8,0x95,0x14,0xb0,0x12,0xe6,0x6b,0x4d, - 0xcc,0x97,0x25,0x20,0xd0,0xee,0x13,0x0c,0x3d,0x51,0x70,0xd6,0x7e,0x13,0x46,0xe7, - 0xae,0xc4,0x85,0xa1,0x25,0x06,0xf3,0xc5,0x3a,0x18,0x6e,0xd1,0xdf,0x2d,0x73,0xcd, - 0xd0,0x5f,0xe1,0x21,0x47,0xea,0x5e,0x21,0xc7,0x8f,0x48,0xfa,0xac,0x05,0xa6,0x04, - 0x3c,0xb4,0xed,0x50,0x4d,0x1f,0x3d,0xa2,0x42,0xf4,0xd0,0x2e,0x26,0x0e,0x27,0x11, - 0x52,0xed,0x8d,0xf2,0xf6,0x32,0xa7,0x97,0x63,0xdd,0xfe,0xb1,0x64,0x5e,0x74,0x4e, - 0xd8,0xae,0xd8,0x65,0x00,0x0e,0xaa,0x4c,0x25,0xf5,0x78,0x22,0xc9,0xed,0x8d,0x5e, - 0xc6,0x61,0x23,0xfc,0xfd,0xc7,0xda,0xed,0x06,0x15,0xce,0x67,0xf0,0xff,0x73,0x00, - 0x43,0x4f,0x88,0x95,0x80,0x3e,0x33,0x2f,0xc7,0x92,0x07,0x2c,0x34,0x89,0xcc,0x17, - 0x53,0xa7,0x00,0x31,0xd3,0x63,0x63,0xc7,0xb1,0x58,0x3c,0x7b,0xba,0x2d,0xbd,0xe1, - 0x9b,0xff,0xac,0x65,0x37,0x1e,0x02,0x40,0xca,0xe1,0xa0,0xc0,0x87,0xdf,0x8e,0x27, - 0x78,0x45,0xe6,0xf2,0x4a,0xc0,0x85,0x34,0xf5,0x38,0xd7,0x64,0xe0,0x5d,0x52,0xab, - 0xa3,0x9c,0xa4,0x14,0x3b,0x79,0x02,0xe8,0x31,0x3c,0x14,0x92,0x94,0xe3,0xb1,0x49, - 0x42,0x21,0xa9,0xc7,0x04,0x74,0xc0,0xe4,0x78,0x6f,0x9b,0x85,0x2f,0xcd,0xf1,0xd3, - 0x3d,0xe9,0xd3,0xc9,0x75,0x3f,0xa3,0xcd,0x46,0x53,0x2a,0xb2,0x9a,0x3d,0xb5,0x83, - 0xa3,0xc3,0x92,0x07,0x7d,0x6d,0x94,0x37,0xd8,0xb1,0x5e,0x76,0x8c,0x22,0x54,0x81, - 0x1a,0x86,0xbb,0xeb,0x61,0x91,0xd0,0x4c,0x96,0x92,0xfc,0x3a,0xcd,0xb8,0x45,0xed, - 0x80,0x51,0x36,0xb8,0x37,0x86,0xbd,0xfc,0x65,0x33,0xa6,0x38,0x2d,0xc7,0xbf,0xee, - 0xfe,0x77,0x6a,0x13,0x19,0x17,0xec,0x20,0xcd,0x06,0xb2,0xad,0x1b,0x28,0x4a,0xe1, - 0xdf,0x63,0x8c,0x10,0xcd,0x61,0x9b,0x88,0x9c,0x7f,0x34,0x09,0x17,0xfe,0x50,0x98, - 0x7f,0x91,0xc8,0xfb,0x8e,0xef,0xf1,0xb6,0x47,0xf0,0x23,0x93,0xc3,0x8d,0x19,0x36, - 0x76,0xc1,0x8c,0xc4,0x9b,0xfe,0x79,0x83,0x12,0x01,0x55,0x23,0xa4,0x84,0x5a,0x38, - 0xbf,0x3a,0xf1,0xca,0x0a,0x06,0xb4,0xe1,0xfb,0x9a,0x64,0x64,0xbb,0x1d,0xd6,0x04, - 0x69,0x51,0x16,0x84,0x93,0x54,0x80,0xd0,0x7d,0xce,0x73,0xf0,0xd1,0x93,0x0a,0x9d, - 0xb9,0xb2,0x58,0x50,0xcb,0xdb,0xf6,0xc7,0xf3,0x13,0x8f,0xd3,0xbd,0x3a,0xf8,0xed, - 0x7d,0x58,0x02,0x03,0x36,0xad,0xc5,0xef,0x20,0x67,0xfa,0x75,0x88,0x89,0x86,0x77, - 0xe6,0x63,0xcc,0x2d,0x8c,0xd5,0x7c,0xde,0x13,0x00,0x0b,0xe1,0xd3,0x19,0x28,0x96, - 0x2b,0x99,0x63,0x9b,0x70,0x79,0x4f,0xa3,0xaa,0x7b,0x7b,0xb0,0x73,0x77,0x17,0xb7, - 0x9c,0xd7,0xaa,0xfd,0xca,0x44,0xb8,0x99,0x29,0x94,0x4e,0xf4,0x69,0xb1,0x38,0x3c, - 0x32,0x0b,0xbe,0x32,0xb7,0x78,0xee,0x6c,0xe9,0xee,0x8a,0xbd,0x3d,0xe5,0xfb,0x04, - 0xb4,0xd6,0x89,0x5a,0x70,0xae,0x41,0x97,0x90,0x70,0xb7,0x84,0x7b,0x26,0xbb,0xa6, - 0xac,0x61,0x5c,0x29,0xd0,0x7e,0xc9,0x6c,0x0d,0xe7,0xab,0x06,0x44,0xe8,0xdc,0xae, - 0xc1,0x15,0xdc,0xac,0x17,0xd4,0x39,0xc6,0xfe,0x27,0xb8,0x08,0x6c,0x3b,0x1b,0x61, - 0x8e,0x0d,0xb3,0xd3,0xc4,0xe1,0x88,0xbf,0x17,0x02,0xa2,0xd1,0x75,0x3c,0x3f,0x0c, - 0xff,0x76,0x5d,0x17,0xdd,0x62,0x82,0x47,0x39,0xae,0x92,0x67,0x04,0x73,0x3a,0x5a, - 0x96,0xf8,0xfa,0x3d,0xc2,0x0d,0x7f,0xab,0x7b,0x95,0x1a,0xfa,0x8a,0x20,0xaf,0x19, - 0x7a,0xc5,0xf9,0x07,0x76,0x48,0x15,0xe5,0x48,0x96,0x11,0xa1,0xa8,0x2d,0xaa,0x91, - 0x69,0x56,0xef,0x4e,0x87,0xf0,0x3e,0xf2,0x89,0x17,0x59,0xca,0x0f,0x78,0x69,0x93, - 0x08,0x1e,0x48,0xa2,0xb9,0x8e,0x35,0x1d,0x8f,0x30,0x47,0xc7,0xd7,0x8d,0x36,0x0c, - 0xc3,0xa7,0x25,0xf2,0x7b,0xd8,0x32,0x7a,0x5f,0x2f,0xdd,0x09,0x2b,0x04,0x0c,0x04, - 0xed,0x6a,0xd1,0x69,0x73,0xff,0x23,0xab,0xac,0xf1,0x42,0x8f,0x30,0xad,0xea,0xc8, - 0xf3,0xba,0x05,0x49,0x6d,0xaf,0xc4,0x1a,0xae,0x8f,0x7c,0x42,0x89,0xfb,0xc1,0xf6, - 0x01,0x3a,0x89,0xa7,0xb2,0xdd,0xe2,0xa7,0xcd,0x84,0x5f,0x68,0x09,0x24,0xaa,0xa5, - 0x38,0x26,0x74,0xce,0x01,0x25,0x4b,0x5c,0xe5,0x3a,0x67,0x1f,0x65,0xd5,0x86,0xcc, - 0x1f,0x69,0xe1,0x4b,0x76,0xb9,0x1b,0x55,0xdb,0xdc,0xb9,0xb6,0xda,0xd2,0x07,0xda, - 0xf3,0xc6,0x1b,0xcb,0x4a,0x14,0x5f,0x33,0xe1,0xab,0x0f,0x74,0x16,0xe7,0x2d,0xdd, - 0xf5,0x27,0x7f,0xb4,0xfe,0xa0,0x99,0x2c,0x43,0xd7,0x92,0x16,0x06,0xe9,0x61,0x8c, - 0x31,0xf7,0x0a,0xb6,0x57,0xa0,0x6e,0x46,0xe2,0x12,0xf1,0x25,0xb6,0x76,0x0c,0x13, - 0x3b,0xbb,0xae,0xb1,0x39,0xb9,0x5e,0xb2,0xd2,0x32,0xec,0x72,0x36,0x4a,0x2d,0x54, - 0x7a,0x0b,0x59,0x54,0xa6,0x87,0x06,0xad,0xdc,0xec,0x37,0xa6,0x24,0x6f,0x67,0xdc, - 0x1d,0xb5,0x9a,0xed,0x9b,0x44,0x3f,0xd9,0x81,0x83,0xcd,0x57,0xdc,0xe0,0xfb,0x0e, - 0xed,0x8d,0xca,0xe4,0x94,0xd6,0x0d,0xb7,0x11,0x51,0x9a,0xda,0xa2,0xa4,0x18,0xf1, - 0xc6,0x16,0x16,0x9a,0xea,0x9e,0xf6,0xe9,0x7c,0x6b,0xf8,0xc9,0x92,0xa6,0xa8,0xf8, - 0x12,0xa7,0x65,0x77,0xb4,0xdf,0x36,0xa0,0xd9,0x22,0x66,0x61,0x67,0x83,0x62,0xc6, - 0x1f,0x3f,0x95,0xe1,0xe7,0x0c,0xc5,0xb6,0x3f,0x2c,0x19,0x8e,0x94,0x8b,0xe5,0x87, - 0x28,0xfd,0x50,0x66,0xb9,0xcc,0x2b,0x85,0xcf,0xae,0x23,0xcb,0x6d,0xa3,0xd0,0x22, - 0x85,0x28,0xa3,0xfc,0x10,0x9b,0xbe,0x8a,0x55,0x42,0xe8,0xe2,0x6b,0xeb,0xe6,0x15, - 0x04,0x59,0xd7,0xa8,0xcb,0x7e,0xb9,0xf1,0xf0,0x0e,0x03,0xb4,0x18,0x09,0x21,0xb7, - 0xee,0x4c,0x51,0x7b,0xe5,0x63,0xce,0x1a,0x28,0x9d,0x8d,0x48,0xa3,0xe9,0xe8,0x2f, - 0x4c,0x54,0xcc,0x1d,0x62,0xcb,0x54,0xb6,0xcc,0x2b,0x0c,0xe3,0xaa,0xef,0x2c,0xe9, - 0x9c,0xa6,0x99,0x13,0x0d,0x37,0x7b,0x47,0x06,0x6b,0x11,0x12,0x12,0xf0,0x9f,0x44, - 0x7a,0x29,0x81,0xc7,0x86,0xbf,0xd3,0xce,0xc1,0x6c,0x6c,0xb1,0x89,0x48,0x9d,0x13, - 0x00,0xbc,0x93,0x9e,0x0e,0x44,0xd1,0x05,0xa2,0xc4,0xd9,0x8c,0xef,0xb8,0x5c,0x39, - 0x7c,0x47,0x17,0x8f,0x96,0x5b,0xe1,0xfe,0x39,0x24,0x4d,0x3e,0xe2,0x36,0x71,0x33, - 0x68,0x38,0x41,0xd4,0x75,0x7e,0x2d,0x78,0x4c,0x18,0xf2,0x28,0x73,0xb0,0x63,0xdf, - 0x14,0x93,0xd9,0x7e,0x96,0x8d,0xe2,0xd5,0x07,0x1d,0xed,0xbf,0x7c,0xd0,0x41,0x18, - 0x39,0xf4,0x01,0xd9,0x48,0x79,0x1f,0x1c,0x94,0x03,0xfe,0x40,0x03,0x61,0x76,0x23, - 0x0d,0x92,0xca,0x22,0x1f,0x20,0x1d,0x92,0x7e,0x90,0xa3,0xd6,0xfe,0xec,0xbe,0xd3, - 0xd6,0xf0,0x3f,0xb5,0x5c,0xf5,0x11,0xa9,0x09,0x39,0x06,0xc5,0x77,0x70,0xdf,0xd9, - 0xad,0x6a,0x10,0xe4,0xb0,0xc7,0xa5,0xac,0x4e,0x6e,0x4e,0x73,0x07,0x6f,0xd1,0xe5, - 0x29,0xfe,0xc8,0xab,0xc4,0x8f,0xd3,0xe9,0x71,0xe7,0x2f,0x97,0x62,0xca,0xf1,0xda, - 0xb8,0x19,0x00,0x99,0xad,0x39,0x4d,0xdc,0x2e,0xbd,0xa6,0x24,0xa8,0x7f,0xc9,0x32, - 0xea,0x09,0x13,0x6b,0x38,0xec,0x3d,0xfc,0xd4,0xce,0x10,0xfd,0x38,0x9a,0x39,0x4a, - 0x29,0xe7,0xa3,0x95,0x4e,0x94,0x65,0xc7,0x81,0x48,0x4f,0x78,0x6a,0xfb,0x2c,0x0f, - 0xac,0xcb,0x9d,0xb2,0x0a,0xa5,0xbd,0xe1,0x41,0x70,0x25,0x90,0x35,0x0b,0x92,0xc3, - 0x9d,0xb0,0x79,0xd3,0x9e,0x12,0x70,0xfa,0xa6,0xcc,0x7d,0xc5,0x22,0xf1,0x6f,0x58, - 0x23,0xd6,0xcc,0x34,0x6f,0xf5,0x58,0xe2,0x5f,0x96,0xde,0x9f,0xc9,0xe2,0xf7,0xbd, - 0x11,0xaf,0x31,0xbd,0xbc,0x51,0xff,0xef,0xe5,0xfe,0x7b,0xe3,0xab,0x41,0x0f,0xd6, - 0xa4,0x3a,0xff,0x34,0xd0,0x03,0xdf,0x16,0x6d,0x04,0xe2,0xe2,0x61,0x35,0x76,0x8d, - 0xaa,0xe5,0xc2,0x0e,0xc6,0xb3,0x31,0xcc,0xcb,0xe4,0xda,0x06,0xcd,0x51,0xa5,0x70, - 0x94,0x6b,0x8a,0xe1,0xd1,0x45,0x7d,0xcd,0x20,0x3e,0x55,0x3c,0x36,0xd6,0x8f,0x12, - 0x24,0x2e,0x9d,0xa1,0x13,0x59,0x8a,0x72,0xaa,0x46,0xf1,0xcb,0x78,0xba,0xe6,0x82, - 0xe0,0x47,0xc9,0x61,0x45,0x68,0xaf,0x95,0xea,0x62,0xf4,0xc4,0x40,0x26,0xaa,0xdb, - 0x6a,0x91,0x16,0x86,0xa0,0x90,0x22,0x51,0xf1,0x51,0xd5,0x9a,0x1c,0x97,0x8c,0x64, - 0xfc,0x47,0xe7,0x21,0xd1,0x65,0x3c,0xc7,0x06,0x82,0xce,0x2e,0x88,0x89,0xfe,0x6f, - 0x1a,0xb3,0xff,0x9b,0x95,0xca,0x33,0xd1,0x0b,0x6a,0x07,0x71,0xab,0x81,0x48,0xb4, - 0x09,0x1f,0x7a,0xe1,0xd3,0x09,0x84,0xa8,0x79,0x53,0x79,0x49,0x86,0xc9,0x34,0x3d, - 0x15,0xb5,0x48,0xf2,0x27,0x3d,0x41,0xb7,0x45,0xa7,0xa9,0x62,0x41,0x08,0xf3,0xc0, - 0x1b,0x4a,0x84,0x9e,0x86,0x09,0x1c,0x0d,0xd3,0xcb,0xc6,0x90,0x07,0xe1,0xd6,0x3f, - 0x51,0x34,0x3a,0xdc,0xae,0x7f,0x77,0x14,0x7f,0x6c,0x44,0x1f,0x6f,0x6a,0xf1,0x57, - 0x5b,0x71,0x2c,0xc6,0x73,0x79,0x1a,0xfd,0xd9,0x00,0x10,0xde,0x79,0xc6,0x87,0x35, - 0x1c,0x51,0xd7,0xb7,0x8f,0xf8,0xa0,0x96,0x97,0xe3,0x34,0x3f,0x1c,0x1e,0xee,0x1c, - 0x1d,0x19,0xf3,0x5e,0x4a,0xe0,0x89,0xd4,0x09,0xc3,0x96,0x39,0x65,0xb9,0xa6,0xa9, - 0x24,0x8e,0xbc,0xf0,0xc9,0x1b,0x70,0x60,0x27,0x11,0x62,0x5b,0x85,0xd0,0x8d,0xd7, - 0x36,0x32,0xfc,0x28,0xae,0xb6,0x48,0x91,0x71,0x8c,0x0c,0x51,0x6f,0x78,0x35,0x10, - 0xe2,0xb4,0xaa,0x02,0xa5,0x57,0x96,0xd7,0x58,0x9e,0x55,0x75,0x4c,0x5e,0x07,0x5e, - 0x83,0x5a,0xb8,0x48,0xa5,0xd5,0x6d,0xd0,0x49,0xa7,0x1e,0x12,0x8f,0x39,0x31,0x4d, - 0x25,0x5c,0xe4,0x62,0xe1,0xa7,0x8e,0xc6,0x61,0xc7,0x4d,0x2b,0x43,0xed,0xce,0x0a, - 0x70,0x86,0x6c,0xd3,0x06,0x25,0xc6,0x6d,0xd3,0xe8,0x68,0x39,0x9b,0x12,0x63,0x53, - 0x7d,0x76,0xbb,0x9c,0x3d,0xbb,0x35,0x95,0xbb,0x67,0xcb,0x99,0xdd,0x33,0xad,0xaa, - 0x91,0x35,0x96,0x8a,0x98,0x0c,0x03,0x64,0xb6,0xaa,0x98,0xc9,0x50,0x70,0x88,0x1c, - 0x61,0xe9,0x42,0x6f,0x2e,0x05,0x51,0xa2,0x1c,0xb2,0xc1,0x16,0x95,0x84,0x65,0x7a, - 0xdb,0x40,0x09,0x7e,0x15,0x24,0x1e,0xaf,0xa9,0xa6,0xae,0xd9,0xb5,0x02,0x5e,0xf6, - 0x78,0xea,0x5d,0x65,0xd1,0x54,0x11,0x76,0x23,0x18,0x58,0xd0,0x4e,0xea,0x32,0xec, - 0x52,0x34,0x28,0xad,0x13,0xc9,0x44,0x6c,0x98,0x4c,0x4c,0x90,0x18,0x25,0x30,0x54, - 0xe5,0xe8,0xc3,0xaf,0xae,0x61,0xb5,0x7c,0x9a,0x56,0x42,0xd2,0xc2,0xd0,0x27,0x7a, - 0x70,0x8c,0xd1,0xc0,0x43,0xc0,0x68,0xd9,0xc5,0x62,0xfb,0x99,0x07,0x06,0x21,0x79, - 0xee,0xff,0x22,0x94,0x3a,0x5e,0xf7,0x55,0x28,0xf0,0x60,0x8c,0x14,0xe0,0x32,0x56, - 0xea,0x31,0xdc,0xf6,0x88,0x24,0x2c,0x77,0x86,0x7a,0x01,0xae,0x98,0x01,0x9c,0x05, - 0x15,0xb8,0x02,0xf5,0x5d,0x1e,0xaf,0xa9,0x72,0x2c,0x25,0xfc,0x9a,0xd6,0xd7,0xf0, - 0xba,0xba,0x5a,0x46,0x6b,0x5b,0xaf,0xbd,0xee,0x17,0x21,0xf5,0x58,0x52,0xa5,0x9c, - 0xef,0x85,0x7c,0xb9,0x09,0x29,0x70,0xac,0x05,0xca,0xd8,0xdd,0x53,0x5b,0x11,0x5c, - 0x01,0x43,0x17,0x30,0xad,0xa6,0xfc,0xd2,0xf1,0x17,0xa3,0x00,0x6f,0xf8,0xb5,0x6d, - 0x73,0x27,0x37,0x4e,0x26,0xde,0x24,0xcf,0xf3,0xe2,0xe0,0x94,0xd0,0x34,0x69,0xc2, - 0xf7,0x9a,0xe1,0x21,0x7e,0xd3,0x90,0xfc,0x63,0x93,0x4f,0xc3,0x44,0x91,0x2e,0x79, - 0xd1,0xd5,0x6a,0x7f,0x6a,0xca,0xf2,0x60,0x71,0x1d,0xcf,0xda,0xe2,0x92,0x20,0x38, - 0x5b,0x77,0xad,0x36,0x1f,0xaf,0x2e,0x00,0xd1,0xff,0x38,0x05,0x24,0xc1,0xe7,0x74, - 0xae,0x77,0x49,0xa7,0xb4,0xa6,0x54,0x63,0x07,0x97,0x8e,0xb6,0x2c,0xde,0xaa,0xc1, - 0xce,0x6e,0x6d,0x29,0x7a,0x71,0x72,0xa6,0x4e,0x0e,0xbd,0x54,0x36,0xe3,0x39,0x27, - 0xb4,0x15,0x74,0x84,0x49,0x7a,0x75,0xdd,0x95,0x23,0x8c,0x28,0xe5,0x0d,0x2a,0xcf, - 0x75,0xa0,0x6d,0x46,0xd3,0x7c,0xa2,0xf9,0x55,0x56,0xb7,0x65,0xcb,0x1c,0x57,0xb7, - 0x3a,0x9b,0xd8,0xf6,0xf0,0x66,0x33,0xd5,0xb3,0xad,0xcd,0xe6,0x77,0x6d,0x5f,0x5d, - 0xc2,0xda,0x7c,0x79,0x17,0x00,0xd6,0x47,0x99,0xcd,0xd6,0x24,0x81,0xe0,0x3b,0x07, - 0xf3,0x30,0xb7,0xc5,0x8f,0xa5,0x80,0xa2,0x0d,0x4f,0x5a,0x0e,0x50,0xbc,0xfa,0xd4, - 0xf1,0xbc,0x6d,0x79,0xa5,0x8f,0x8b,0x0c,0x6b,0x6d,0xe4,0x49,0xf0,0xd9,0x00,0x92, - 0x27,0x9b,0x45,0xb0,0xa0,0xab,0x16,0xf9,0xd6,0x75,0x58,0x6c,0x40,0x52,0x1e,0xa7, - 0x79,0xd3,0xc8,0xe4,0xaa,0x38,0xec,0x5b,0x72,0xbe,0x02,0xf0,0xe4,0x7a,0x0d,0x78, - 0x0b,0x37,0x8d,0xae,0x29,0x0b,0xc0,0xd5,0x2a,0x48,0xa1,0xa6,0xd7,0x80,0xeb,0xef, - 0x81,0xf7,0x8a,0x5b,0x29,0xaf,0x7a,0x24,0x21,0x47,0xa7,0x72,0x37,0xc5,0x58,0x76, - 0xe9,0x9b,0xab,0x13,0xa5,0x6e,0xcd,0xd3,0x77,0x27,0x70,0xa5,0x6b,0x8d,0x85,0x70, - 0x78,0x43,0x0e,0x1e,0x49,0xfb,0x31,0xc9,0xa6,0x20,0x15,0xd5,0x46,0x41,0x36,0x20, - 0x52,0xa0,0x82,0x47,0x9e,0x38,0xdc,0x2f,0xde,0xd8,0xdc,0x2c,0xe7,0x1e,0x3a,0xb9, - 0x47,0xb4,0x57,0xcd,0x85,0xb7,0x94,0x92,0xa9,0xd2,0xa3,0x7b,0xa0,0x4f,0x6e,0x04, - 0xb8,0xad,0xae,0xa9,0x47,0x44,0x1f,0xbd,0xec,0x44,0x9f,0x59,0xd1,0xba,0x96,0x43, - 0x37,0x6b,0x76,0xe5,0x35,0x1d,0xdd,0xf0,0x8a,0xc6,0xe5,0x9e,0xa2,0x6a,0xb1,0xef, - 0x7f,0xb0,0x87,0x5a,0x18,0xaa,0xb1,0x89,0x94,0xea,0xed,0xd3,0x27,0xa7,0x0f,0xa3, - 0x65,0x67,0x0d,0x29,0x5b,0x55,0x84,0xe4,0x7e,0x2a,0x35,0x54,0x4d,0xf0,0x2f,0xa3, - 0xa3,0x96,0xba,0x97,0x9a,0xaa,0x78,0xb8,0xe3,0x81,0xeb,0xa1,0xb6,0x62,0x2c,0x88, - 0xf2,0xfa,0xbe,0xee,0xb9,0xdb,0x90,0x11,0x0b,0xeb,0xc1,0xdc,0xa3,0x61,0xc5,0x9e, - 0xf5,0x52,0xf5,0xa2,0xa9,0xf7,0x59,0x97,0x47,0x72,0xa9,0x2c,0xbd,0xb6,0xe8,0x50, - 0x62,0x69,0x9b,0xbc,0x72,0x17,0x0c,0x62,0x3b,0xc6,0x69,0x97,0x44,0x40,0x6a,0xc8, - 0x99,0xe0,0xed,0x4a,0x6b,0x30,0x6e,0x30,0x94,0x76,0xe5,0x58,0x0f,0x80,0xe4,0x55, - 0x37,0xec,0x84,0x03,0xcd,0x6f,0x26,0x9b,0xb7,0x95,0x07,0x76,0xa8,0x53,0x49,0x80, - 0x53,0x09,0xe7,0xbd,0x82,0x04,0xf2,0x51,0xba,0xcf,0x5f,0xf9,0x59,0xe5,0xaf,0xa2, - 0x92,0xf8,0x2e,0xbb,0xb7,0xf7,0xdb,0x22,0x84,0xee,0x62,0xfd,0x0a,0xcd,0xe4,0x9d, - 0x45,0x3c,0xf7,0x91,0xb4,0x79,0x6b,0x3a,0x29,0x1b,0xa4,0x8c,0xa7,0x46,0x38,0x7e, - 0x5c,0xbb,0xac,0x3d,0x56,0x2b,0x28,0x42,0xb0,0x20,0x70,0x09,0x20,0xa1,0xe1,0x18, - 0x06,0xaa,0x86,0xea,0x03,0xb2,0x52,0x2e,0xb0,0x37,0xa6,0x30,0x4d,0x51,0x9c,0xf0, - 0xcb,0x0f,0xdc,0xe9,0x8f,0x4e,0x91,0xf6,0xea,0xcf,0xa8,0x54,0x3c,0x31,0xe3,0xc0, - 0x20,0xaa,0x63,0x41,0xd0,0x59,0x49,0xb5,0x75,0x5d,0x6d,0x9b,0x8c,0x0d,0x9d,0x34, - 0xc5,0xe9,0x72,0x69,0x2e,0x2d,0xa1,0x52,0x31,0x02,0xb4,0xa0,0xc7,0xa4,0xb0,0x6f, - 0xab,0xa2,0xb7,0x66,0x3d,0x8c,0xdc,0x28,0xfa,0x00,0x82,0xa3,0x98,0xa5,0xf7,0x34, - 0x3b,0x23,0xa4,0x2f,0x3e,0x50,0xa2,0xf8,0x67,0xf0,0x2e,0x00,0x78,0x5b,0x4a,0xb5, - 0x31,0x46,0xf2,0x71,0x36,0x72,0x0f,0xe9,0x64,0xf9,0x04,0x56,0x12,0xe6,0x2d,0x35, - 0x16,0xa0,0xa6,0x30,0xa7,0xc5,0xb0,0x27,0xd1,0x68,0x5f,0x5e,0x01,0x4d,0x46,0x19, - 0x26,0x33,0xd7,0x78,0x99,0x6e,0x6f,0x6e,0xf2,0xd3,0x8b,0x74,0xbb,0xa9,0x4d,0x71, - 0x42,0x10,0xd6,0xf8,0xb7,0x16,0x45,0x05,0xc8,0x34,0xdd,0x7e,0xbe,0x58,0x38,0xaf, - 0x4f,0x76,0xe2,0x4e,0x18,0x68,0x02,0x55,0xd1,0xc7,0x16,0x5b,0xc3,0x7a,0x1b,0x08, - 0xc1,0x64,0x4a,0xfb,0x1b,0xd2,0x06,0x3d,0x7f,0xf6,0x7c,0xe7,0x59,0x5c,0x0b,0xa9, - 0x52,0x39,0x9f,0x43,0x61,0x49,0x11,0x84,0xbe,0x2a,0xab,0xbe,0x70,0x41,0x84,0xa9, - 0xa9,0xb6,0xf4,0x86,0x4a,0x7e,0x3f,0x99,0x64,0xf4,0x54,0x22,0xf4,0xf2,0x0a,0x70, - 0x22,0xb2,0x45,0x8b,0x68,0xca,0xd3,0x9d,0x18,0xce,0x28,0xa4,0x00,0x93,0x5e,0x88, - 0x1c,0x8f,0xbc,0xde,0x91,0x1e,0x19,0xad,0xea,0x8d,0x36,0x9e,0x94,0x3b,0x8c,0x98, - 0xda,0x23,0x50,0xba,0x63,0x3e,0x79,0x14,0xb7,0x34,0x94,0x5c,0x7b,0xc3,0xc3,0x50, - 0x49,0x09,0x24,0x0d,0x84,0x32,0xa1,0xbc,0x6e,0xf1,0x53,0xd1,0x3b,0x1d,0x2f,0xb1, - 0x05,0x72,0x7a,0xed,0x4c,0x6f,0xfd,0x16,0xaa,0xbb,0x6a,0xa9,0x22,0x77,0x94,0x57, - 0x77,0x5d,0x37,0xba,0x93,0x81,0x57,0xbf,0x72,0xd7,0xba,0xd9,0x43,0xf2,0x60,0xf6, - 0xe0,0x0e,0xd6,0xce,0x59,0xdb,0xd1,0x8a,0xa5,0x74,0x98,0xd0,0x3c,0x95,0x0a,0x69, - 0xaa,0x7d,0x60,0x27,0xcf,0x3d,0x7d,0xa1,0xa7,0xdf,0x4e,0x78,0xba,0x75,0xe6,0x10, - 0x52,0x22,0xb6,0x75,0xbc,0x70,0x7e,0x6b,0xea,0x6a,0x55,0xa0,0xed,0x3a,0x2a,0xe7, - 0x61,0xab,0x2c,0x02,0x94,0x42,0x8e,0x14,0x26,0xa3,0xe4,0x35,0x5d,0xcc,0x33,0x6e, - 0x7d,0x4f,0xc2,0x02,0xd9,0xe3,0x01,0x8a,0x2f,0x2c,0x78,0x9a,0xe1,0xba,0x39,0x2f, - 0x16,0x1e,0xc6,0x7b,0x8e,0xb6,0xe3,0x05,0x3b,0xc4,0xb4,0x93,0x12,0x2a,0xaf,0xdb, - 0xae,0x11,0x99,0x03,0x03,0x60,0x73,0x93,0x93,0x5d,0x61,0xc8,0x85,0xe1,0x2e,0x3e, - 0x48,0xf9,0x4b,0xcb,0x4f,0xcf,0x59,0x79,0x64,0xd4,0xe1,0x0f,0xaf,0x3e,0x91,0xdb, - 0x5a,0xc2,0xa8,0x24,0x82,0xb4,0xdb,0x91,0x15,0x36,0xb4,0xca,0x4c,0x60,0x1c,0x4e, - 0xee,0xe4,0x5b,0xcb,0x31,0x46,0x4d,0xdc,0x3c,0x37,0xc0,0xe8,0xe0,0x13,0x5b,0x7e, - 0x17,0x3d,0x18,0xee,0x5d,0xd1,0x62,0x37,0xd4,0x2a,0x5b,0xb9,0x13,0x5f,0x30,0x0f, - 0x70,0x5b,0x8e,0x4d,0x58,0x10,0xe1,0x63,0x48,0xd6,0x43,0xa4,0x62,0xc8,0x06,0x9f, - 0xf8,0x3a,0x1d,0xb1,0xae,0x2e,0x8e,0x76,0xe5,0xd6,0xa7,0xfa,0xd9,0x04,0xf0,0xf0, - 0x0d,0x75,0xa6,0x06,0xab,0x0c,0xfa,0x39,0x80,0x77,0x07,0xa7,0x57,0x03,0x8e,0x7e, - 0x74,0x56,0x38,0x19,0x1e,0x88,0x5b,0x92,0xfd,0x1f,0x19,0xde,0x09,0xfd,0x61,0xe7, - 0x12,0x62,0x90,0x04,0xb5,0x4b,0xaf,0x51,0xde,0x15,0x3a,0x42,0x84,0x9e,0xe0,0xa4, - 0xa4,0xdf,0xb7,0x77,0x16,0xa7,0xe7,0x2b,0x2f,0x2a,0x4e,0x0e,0x1d,0x89,0x8a,0xca, - 0xa5,0xca,0x2f,0xef,0xec,0x02,0x32,0x69,0x10,0x6b,0xf8,0xb3,0x16,0x26,0x34,0xd8, - 0x1a,0x27,0x37,0xe6,0x21,0x3f,0x33,0x0f,0xa7,0xd3,0xa5,0x35,0x42,0xf6,0x7a,0x11, - 0x3f,0xea,0x36,0xaf,0x74,0x44,0x0f,0x55,0x22,0x97,0xb1,0x37,0xc3,0xdc,0xc2,0xce, - 0x73,0x03,0xcf,0x5c,0x2a,0xe5,0xca,0x05,0x56,0xd6,0x78,0x4f,0x20,0x2d,0x99,0x14, - 0x9f,0x96,0x8f,0x22,0xcb,0x4d,0xea,0x3e,0xd9,0xec,0x03,0x44,0xb5,0x99,0x9e,0xb6, - 0xcd,0x58,0x07,0xfd,0x54,0xaa,0x31,0xcf,0x85,0x67,0x08,0xd9,0x3b,0x68,0x12,0x9b, - 0x23,0x5b,0x28,0xeb,0xf7,0x1b,0x9e,0xc1,0xfd,0x9c,0x0d,0x43,0xf7,0x71,0x3e,0x43, - 0x03,0xda,0x7a,0xa5,0x8f,0xdb,0x4e,0x06,0xac,0xaf,0x35,0xfd,0xce,0xb9,0x88,0x7a, - 0xb9,0xaa,0x4f,0x85,0xd2,0x97,0xa9,0xbb,0x01,0x48,0xae,0xd3,0xe2,0xd8,0x8a,0xf1, - 0xc4,0x47,0x8a,0x28,0xef,0xef,0x0a,0xbc,0xd3,0x70,0x9d,0xab,0x86,0x07,0x92,0xe1, - 0x34,0x00,0xb3,0xff,0x29,0xd8,0x9b,0x34,0xce,0x28,0x07,0x19,0xd4,0x3f,0x94,0xb7, - 0xb9,0x49,0x7f,0x3c,0x5f,0x11,0x21,0xad,0x10,0xfd,0x89,0xd8,0x3f,0x11,0xe1,0x4f, - 0x2f,0x14,0xb2,0x48,0x69,0xfa,0x49,0x22,0xfb,0xaf,0xfc,0x28,0xef,0x04,0xcf,0x1b, - 0xdc,0xeb,0xeb,0xe8,0xda,0x68,0x4e,0xd8,0xbc,0x21,0xbf,0xfe,0xb3,0xf5,0x86,0x87, - 0xd1,0x7a,0xd7,0x35,0x1a,0xd7,0xba,0x05,0xe7,0x54,0x75,0xe4,0x86,0x68,0xaa,0xfd, - 0x77,0x2d,0xaa,0xa3,0xa2,0x10,0x6d,0xd3,0x1b,0xfe,0xa1,0x82,0xb5,0xb2,0xf6,0x9a, - 0xd7,0x02,0x8a,0xc7,0x3a,0x34,0xfc,0x66,0x01,0xcb,0x5d,0x12,0xfc,0x46,0xb1,0x30, - 0xd8,0xf3,0xea,0xe5,0xea,0xc2,0xf2,0x97,0x28,0x11,0x88,0x1d,0xf7,0xa1,0xe9,0x1e, - 0x13,0x63,0x9f,0x0e,0x6e,0xef,0x2b,0x29,0x27,0x10,0x75,0xad,0xb0,0x6e,0x05,0x31, - 0x0b,0xda,0x0a,0xaa,0x19,0x08,0xe8,0x48,0x8b,0x7f,0x51,0x0b,0x3d,0x98,0x7f,0x1a, - 0x9d,0xfe,0x20,0xa5,0x8d,0x01,0x2b,0x9b,0x04,0xab,0x3c,0xab,0x23,0xc3,0xce,0x0d, - 0xbc,0x7b,0xfb,0xb3,0x76,0xf7,0xec,0x67,0x5a,0x6e,0x50,0xcf,0xde,0x7f,0xdb,0xa6, - 0xfb,0x6f,0x69,0x61,0x85,0xce,0x17,0xe1,0xe6,0x46,0x94,0xc2,0xf4,0xfd,0x11,0xf2, - 0x45,0x1e,0x7d,0x55,0x9e,0xde,0x49,0x3f,0x6e,0x57,0x14,0xd2,0xa9,0xae,0x65,0xee, - 0x18,0xed,0xf7,0xd0,0x37,0x53,0x99,0x01,0x2d,0x27,0x8c,0x74,0xb5,0x3e,0xad,0xc4, - 0x3f,0x57,0x1d,0x63,0x7b,0x66,0xab,0x96,0xc5,0x8b,0xf6,0xc2,0xb3,0xe3,0xad,0x24, - 0xda,0x7c,0xe3,0x50,0x07,0x4e,0x98,0xb8,0xc7,0x46,0x55,0xe6,0xbc,0x13,0xfa,0xca, - 0xfe,0xad,0xe1,0x48,0x6c,0x1e,0xe5,0x8e,0xbf,0xc7,0x35,0xc9,0xaf,0x3d,0x6e,0x20, - 0xcf,0x95,0xee,0xaa,0x8b,0xe9,0xc9,0x54,0x79,0xa0,0x46,0x6a,0x77,0x05,0xc1,0x6c, - 0xb1,0x28,0xde,0x46,0xce,0x8b,0x8e,0xb1,0xe5,0x8b,0x9b,0x56,0xe0,0x20,0x26,0x99, - 0xa8,0xf2,0xe4,0x3a,0x75,0x95,0x2e,0xf1,0x7c,0x59,0xd5,0x21,0x46,0x85,0x25,0xad, - 0x08,0x6f,0x7b,0x09,0xc2,0x3a,0x89,0xe7,0x12,0x66,0x1d,0x5a,0x4b,0xe4,0x1e,0x68, - 0x67,0x70,0xca,0x1b,0xdb,0xf1,0xa5,0xa9,0xa5,0xa3,0xca,0xc5,0x42,0xd2,0xfc,0x03, - 0xbf,0xb8,0xb2,0x9f,0xfc,0xbe,0x2e,0x7f,0xb5,0x36,0xa5,0x77,0x67,0x79,0x80,0x9e, - 0xd5,0x7b,0xa7,0xc2,0xa6,0x1f,0x95,0x14,0xb1,0x54,0x3a,0x9d,0x74,0xa7,0x79,0xf6, - 0x23,0x7c,0x3a,0x47,0xb6,0x6f,0x80,0xb6,0xed,0x35,0xa8,0x81,0x4b,0x92,0x58,0x3f, - 0xa7,0xc8,0x0a,0xfd,0x59,0x16,0xd1,0x71,0x35,0xd9,0xc1,0x9d,0xbd,0x4c,0x9b,0x9d, - 0xf0,0xff,0x47,0x22,0xab,0xb9,0x1b,0x3a,0x26,0x3b,0xb8,0x08,0xe1,0x96,0xb7,0xa8, - 0x44,0x6d,0x3b,0x8e,0xb7,0x68,0x13,0x5c,0x0b,0xff,0x23,0xe8,0x51,0x80,0xf8,0x80, - 0x03,0xc4,0x87,0x2d,0xd1,0x80,0xab,0x59,0x77,0x85,0x61,0x2e,0xdc,0xb7,0xf8,0x76, - 0xb9,0xaa,0x3e,0x20,0xf3,0xdc,0x19,0xfb,0x54,0x6a,0x57,0x68,0xc4,0xac,0xe2,0x90, - 0x94,0xbc,0x54,0x12,0xf7,0xab,0xb0,0x64,0xbb,0xfe,0x75,0xe2,0xfb,0x97,0xf4,0x6a, - 0xc0,0xaa,0x29,0x35,0xd6,0x6b,0x74,0x99,0x8b,0x08,0xd1,0x73,0x41,0xa3,0x56,0xbf, - 0x97,0x14,0x2a,0xfd,0xd8,0x03,0xa5,0x8a,0x93,0x0a,0x25,0x86,0x6a,0x2d,0xdd,0xd2, - 0x8e,0x16,0x4d,0xa7,0x8d,0x9b,0x5b,0x7b,0x5c,0xcd,0x5f,0xc7,0xac,0x55,0x1b,0x93, - 0x7c,0x54,0xa8,0x53,0xc6,0x0e,0x4e,0x98,0x2c,0x76,0x86,0xb8,0x00,0x6d,0x21,0x4c, - 0x9a,0x4a,0x32,0x58,0x27,0x3b,0xd5,0xdc,0xc8,0xff,0x0e,0xd5,0xea,0xf9,0xfa,0x40, - 0xef,0x5b,0x28,0xe5,0x41,0x5f,0x33,0x96,0x61,0xe9,0x4a,0xb4,0x95,0x2d,0x4e,0xcf, - 0x55,0x07,0x5b,0x62,0xf7,0xf7,0xcb,0x18,0x68,0x6e,0xbc,0x7a,0xaa,0x5b,0xc5,0xad, - 0x2a,0xec,0x80,0x81,0xbf,0xc1,0xa1,0x72,0x85,0x0b,0x09,0xbd,0x6a,0x07,0x61,0x09, - 0xb6,0x45,0xb0,0xe8,0xe3,0x4d,0x81,0xd8,0xb9,0x06,0x72,0x8b,0x84,0xe3,0x9b,0xc0, - 0x4f,0x28,0xb9,0x93,0x19,0xd1,0x5a,0xc0,0x42,0x25,0xe9,0xcd,0x1b,0xb2,0xba,0xe6, - 0x0d,0x89,0x48,0xa1,0x5c,0x37,0xad,0x6f,0xb7,0x3f,0xec,0xfe,0xf0,0xfa,0xdd,0xf1, - 0xfb,0x0f,0xaf,0xe8,0xd6,0xcd,0x7e,0x05,0x9b,0x4e,0xfa,0x4c,0x38,0x55,0x3a,0x4a, - 0x3b,0x42,0x87,0x49,0x4c,0x08,0xc6,0xc3,0xb4,0xcf,0xcb,0xa8,0x21,0xe9,0x10,0x53, - 0xd9,0x08,0x55,0xc3,0xb8,0x15,0xe9,0xb7,0x94,0x98,0x5b,0x27,0x04,0xfe,0x61,0x4b, - 0x2a,0xa9,0xf2,0xcd,0x39,0x70,0x00,0x75,0x96,0x7c,0x95,0xb9,0xca,0xda,0xcd,0x4d, - 0x2b,0x6a,0xba,0xcf,0x56,0x81,0x48,0x7b,0xab,0x78,0x59,0xdd,0xbd,0x7c,0x48,0xe0, - 0xe6,0x1e,0xa5,0xc5,0xd0,0x5d,0xcf,0x16,0x2c,0x98,0x95,0x3c,0xe0,0xd1,0x2a,0xc6, - 0x41,0xe8,0x6a,0x23,0x80,0x19,0xca,0xc7,0xaf,0x18,0xef,0x4b,0x8a,0xeb,0x72,0x3e, - 0x10,0xd6,0x85,0x71,0xd5,0xf8,0x05,0xd3,0x2e,0xab,0xb1,0x4b,0x6f,0xd8,0xc3,0xe8, - 0xc7,0x54,0x0a,0xc1,0x0e,0x4d,0xaa,0xf1,0x04,0x37,0xf2,0xdb,0x41,0x92,0xfb,0x62, - 0x5b,0x51,0x55,0xac,0x07,0xc0,0x6b,0xe6,0xae,0x6c,0xcc,0xee,0x2d,0x58,0x73,0xa3, - 0xdc,0x73,0x35,0xc7,0xc5,0xe0,0x32,0x83,0xdc,0xac,0x4f,0x93,0xc9,0xdf,0x25,0x08, - 0x60,0xfa,0x48,0x2c,0xc9,0x29,0x65,0xad,0x19,0xb9,0x08,0xd5,0xea,0x92,0xb9,0x42, - 0x86,0x16,0xff,0x6f,0xc9,0x88,0x22,0x66,0x6f,0x5a,0xf0,0x4e,0xbd,0xfa,0xc8,0x37, - 0x2e,0xae,0x45,0x23,0xe8,0x02,0x3b,0xa1,0xf1,0x9a,0x1c,0xb6,0xf4,0x29,0xf7,0x7c, - 0x13,0x38,0x0e,0x9b,0xe7,0xce,0x76,0xd9,0xdf,0xc0,0x1a,0x15,0x03,0x4f,0x4d,0x7d, - 0x16,0xdf,0x78,0xa1,0x78,0x79,0xce,0x7a,0xd8,0x9f,0xc8,0x9c,0xda,0x7f,0xf3,0xee, - 0x00,0x57,0x12,0xdf,0xbc,0x7a,0x9b,0xce,0x67,0x14,0x88,0x74,0xd4,0x7a,0xfa,0x4d, - 0x72,0x95,0x67,0x53,0x18,0xdc,0xb5,0x9e,0x6c,0x17,0xb6,0xf0,0x74,0x11,0x3f,0x91, - 0x48,0x02,0x78,0xe2,0x50,0x96,0xad,0xef,0x9e,0x25,0xdd,0xab,0x5e,0x1f,0x0e,0xaf, - 0x29,0xd1,0x38,0x71,0x79,0xff,0xcb,0xc1,0xf1,0xc1,0x3f,0xde,0xbf,0xda,0x4f,0x0f, - 0x0f,0x9b,0x49,0xf8,0xe1,0xd5,0x7f,0xc1,0x1a,0x73,0x1b,0x4f,0xfb,0xef,0xdf,0xbd, - 0xdd,0x7f,0x85,0xd7,0x9d,0x24,0x3c,0xf8,0x6f,0x6a,0x79,0xff,0x27,0xbc,0x3d,0x49, - 0xc2,0xdd,0xbd,0x5f,0xf0,0xf4,0x94,0x9e,0x7e,0xf8,0xfb,0xab,0x0f,0x07,0xf4,0xb2, - 0x71,0xf8,0x2c,0x09,0x7f,0xfa,0xf0,0xfe,0x98,0x4a,0x22,0xef,0xb9,0xbc,0xfd,0x40, - 0xe1,0x78,0xf1,0xfa,0x0d,0x15,0x7d,0xfb,0xee,0xed,0xb1,0x69,0xe0,0xdb,0x24,0x7c, - 0xbf,0x7b,0xf0,0x33,0x1e,0xbf,0x23,0xe0,0x1f,0x76,0xf7,0x5e,0x31,0x8c,0x6d,0xc2, - 0xe1,0xd7,0xdf,0xde,0x1c,0xbc,0x7e,0xbf,0x0b,0xa8,0x84,0x09,0xa1,0xb2,0xf7,0xee, - 0xed,0xc1,0x87,0x77,0x6f,0xf8,0x95,0x50,0x99,0x66,0xfc,0x65,0x3d,0x7e,0x7f,0xe2, - 0xbd,0x3f,0x75,0xdf,0x01,0x90,0xb0,0xfa,0xb0,0xfb,0xfb,0xf1,0xde,0x6f,0xfb,0x07, - 0xef,0x7e,0x0d,0x8f,0x8e,0xec,0x67,0xbf,0xdd,0xfd,0xf5,0xd5,0x0f,0x3a,0xf2,0x4e, - 0xa7,0x19,0x8d,0xcb,0x08,0x76,0x91,0xd4,0x8f,0x4a,0x95,0x2a,0x3e,0xca,0x5d,0x35, - 0x39,0xdc,0xc6,0x71,0xb2,0x6d,0x2b,0x2e,0x20,0x1e,0x22,0x8f,0x86,0x18,0x87,0xc7, - 0xdf,0xa3,0x69,0x11,0xc5,0x47,0xe9,0xe4,0xb0,0x79,0x54,0x9a,0x07,0x67,0x2c,0xeb, - 0x53,0x0c,0xd5,0xcb,0x08,0x03,0xcc,0x4c,0x84,0x99,0xee,0x62,0x91,0x66,0xad,0x34, - 0xb9,0x44,0x83,0x72,0x86,0x46,0x70,0x9c,0x31,0xbf,0x59,0x2c,0xf8,0x97,0xce,0x71, - 0x0b,0x93,0x80,0xe6,0xed,0x8f,0xf4,0x4f,0xcb,0x48,0x88,0x15,0x9b,0xa9,0x9a,0xd9, - 0xfc,0x32,0x6d,0x26,0xe3,0x4b,0x73,0x9e,0x49,0x3a,0x0e,0x1a,0x77,0x34,0xe0,0x92, - 0xaa,0xf5,0x8f,0x84,0xc2,0x02,0x3b,0xaa,0x82,0x57,0x83,0x49,0x32,0xc2,0xb2,0x83, - 0xa6,0xc8,0x45,0x5e,0x93,0x6c,0x53,0x6b,0xea,0x17,0x8f,0x0a,0xc6,0xf1,0x48,0xe4, - 0xc9,0xd7,0x23,0x7e,0x4f,0x48,0xec,0x2b,0x38,0x1b,0x12,0xca,0x14,0xc2,0xa2,0x52, - 0x50,0x90,0xaa,0x5a,0x6a,0x2e,0x15,0x95,0x63,0xe6,0xd1,0x8b,0xe6,0x62,0x31,0x7a, - 0x49,0xd6,0x68,0x73,0xc2,0x4a,0xc4,0x34,0xf9,0xcc,0xbb,0x0d,0x7c,0xe0,0x22,0x8d, - 0xb6,0x5f,0xbc,0x80,0x1e,0xd1,0x51,0x72,0x8d,0x2f,0x3b,0xc8,0x6b,0x29,0x95,0xee, - 0xfc,0xfe,0x38,0x20,0x42,0x47,0x28,0x22,0x5c,0x10,0x4f,0x44,0x45,0x29,0x6e,0xa8, - 0xc8,0xe4,0x6e,0xbb,0xb9,0x9a,0xc1,0xb4,0x16,0x12,0x93,0x78,0x9e,0xe2,0x16,0x68, - 0xd9,0x87,0xca,0xf6,0x73,0xde,0x3b,0x9a,0xaa,0x9b,0x40,0xb0,0x1f,0xc7,0x54,0xb6, - 0x31,0xb9,0xca,0x2f,0xa2,0xbe,0x45,0x14,0x69,0xe2,0xf1,0x24,0xf1,0xd8,0x4a,0xae, - 0x7b,0xc9,0x9f,0x67,0xc3,0x41,0xd4,0x4f,0xce,0x12,0x18,0x4c,0x24,0xec,0x0e,0x31, - 0x81,0xa6,0xb4,0xb8,0xbb,0xf7,0xb8,0x14,0xea,0x27,0xc8,0xcf,0xea,0x8f,0x6b,0x67, - 0xb5,0xc7,0x45,0x8c,0x9f,0xc7,0x35,0xfe,0xad,0x3d,0xae,0x8c,0x20,0xf7,0xb8,0x86, - 0x5f,0x2a,0x5e,0x0a,0x64,0xf8,0xb8,0xd6,0xa7,0x1d,0x9a,0xc0,0x79,0x60,0x30,0xb2, - 0x8a,0xb0,0x08,0xd4,0x74,0x04,0x54,0x3b,0x25,0x14,0x91,0x82,0x2c,0xfc,0x02,0x29, - 0xb8,0x98,0x7d,0xdc,0x7a,0xfc,0x38,0x2e,0x5e,0xca,0xce,0x78,0x9c,0x2d,0xb3,0xd0, - 0xc2,0x8c,0x52,0x32,0x61,0xc9,0xf2,0xd4,0xce,0x60,0x32,0xde,0x2e,0xcd,0x5e,0x25, - 0x8f,0x90,0x41,0x5b,0x9f,0x5c,0xae,0x0f,0xd4,0x37,0x39,0x4b,0x43,0xfe,0xfa,0x50, - 0x8e,0x08,0xf0,0x86,0x49,0x0d,0x82,0x06,0x12,0x6b,0x40,0x13,0x02,0x3c,0x6c,0xd3, - 0x83,0xf5,0x9e,0x2d,0x04,0xf7,0x1c,0xd9,0xac,0xea,0x26,0x19,0x8a,0x36,0x16,0x13, - 0x3e,0x54,0xb0,0xca,0x0b,0x50,0x1b,0x04,0xdd,0xc5,0x56,0xb4,0x20,0x55,0x9d,0xa5, - 0xd0,0x50,0x45,0x9b,0x92,0x0f,0x3e,0x07,0xb5,0x99,0x5a,0x4a,0xe1,0xe5,0x32,0x5d, - 0x42,0x63,0x5d,0xbc,0x92,0xc1,0xe8,0x52,0x09,0x04,0x3b,0x29,0x43,0xa3,0x16,0xe6, - 0x08,0x02,0xb9,0xaa,0xc3,0x7a,0x81,0xfc,0x17,0x00,0xd9,0x10,0x51,0x65,0x50,0xae, - 0xe7,0x68,0xaa,0x70,0x35,0xf4,0xbc,0xd2,0xa3,0xd0,0xf2,0xe0,0xfa,0xfd,0xa2,0x7f, - 0x8a,0x30,0xd6,0x9f,0xb0,0x20,0x0b,0x45,0x03,0xeb,0x15,0xcf,0x71,0x13,0x2e,0x51, - 0xbe,0xc9,0xf9,0x24,0xaf,0xc8,0x39,0xd2,0xc9,0xa3,0xbc,0x46,0xc0,0x96,0x33,0x80, - 0xee,0x8d,0xa9,0x97,0xb7,0x35,0x4a,0x37,0xd2,0xd5,0xe6,0x4d,0x20,0x8f,0xb0,0x86, - 0x1b,0xe6,0x82,0x08,0x60,0x90,0x29,0xc1,0xe0,0x25,0xf6,0x17,0xc6,0xaa,0x02,0xd1, - 0x40,0xe3,0x1a,0xae,0xab,0x62,0xc8,0x57,0x68,0x8a,0x4a,0xfb,0xc1,0xaf,0xd2,0x50, - 0xbb,0xbb,0x72,0xe7,0xa4,0xdb,0x85,0x7e,0x7a,0x61,0xa5,0xe1,0xea,0x3b,0x06,0x5b, - 0x31,0x8d,0x60,0xf5,0x9b,0x38,0xed,0x51,0x05,0xab,0x0d,0x06,0x0b,0x32,0x2a,0x04, - 0xe4,0x19,0xf6,0xe7,0xac,0x2d,0xce,0xda,0x76,0x51,0xec,0x0b,0x50,0x74,0xd9,0x29, - 0x30,0x50,0x77,0x67,0x57,0x35,0xe2,0xa7,0x27,0x10,0xd3,0x4f,0x8a,0x23,0x62,0xcb, - 0x3f,0x75,0x89,0xa1,0x22,0xd2,0x12,0xd6,0x99,0x38,0xa6,0xa5,0xb9,0x69,0xcd,0x31, - 0x68,0x78,0xa4,0xcb,0xcd,0xd3,0x97,0xc8,0xc8,0x91,0x25,0x95,0x9e,0x62,0xfa,0xbf, - 0x24,0xee,0x95,0xf8,0x7f,0x07,0x9c,0x5f,0x06,0x4d,0xd8,0x8a,0x34,0xab,0x13,0x9a, - 0x7e,0x2b,0x06,0x51,0xd8,0xf2,0xd7,0x12,0x83,0xc6,0xcd,0xb4,0x3b,0x29,0x11,0xf2, - 0xcc,0x34,0x8d,0x8c,0x18,0x7f,0x56,0xef,0x33,0x6d,0x87,0xf9,0xca,0xa5,0xbb,0x78, - 0x25,0x5b,0xdc,0x63,0xc1,0xb4,0x47,0xab,0x04,0xf7,0xd3,0xdc,0x59,0xfd,0xbf,0xbc, - 0x3f,0x80,0xb8,0xed,0x92,0xd8,0xae,0xb9,0xd5,0x5d,0x62,0x7b,0xc3,0x70,0xa7,0x90, - 0xc0,0x17,0xc3,0x95,0x8e,0x2e,0x3c,0xa2,0xf9,0x7e,0xa9,0xd4,0x2a,0xa4,0x7a,0x58, - 0x5f,0xe8,0x21,0x27,0x1a,0x29,0x69,0xfb,0xe8,0xbd,0x62,0xda,0x94,0x48,0xe6,0x9c, - 0xc3,0xe4,0xc5,0xd1,0xca,0xc5,0x38,0x87,0x57,0x6a,0x24,0xf0,0x48,0xc7,0x7b,0x69, - 0xa4,0x5f,0xd0,0x9a,0x83,0x3d,0xdf,0x7a,0x3d,0xb1,0x00,0x63,0xe7,0x89,0x8f,0x2b, - 0xa3,0xdf,0xd5,0x03,0xfc,0x06,0x75,0x0d,0x61,0x87,0x29,0x6f,0xbd,0x4a,0x54,0x8a, - 0x9f,0x80,0x56,0xf3,0xc0,0x81,0x40,0xf0,0x5a,0x3d,0xe1,0x3b,0x39,0x31,0x56,0x25, - 0x2f,0xc1,0x36,0x00,0x1a,0x55,0xc3,0x38,0xe5,0x03,0xd1,0xf0,0xa5,0xfc,0x36,0x1a, - 0x0d,0x17,0x2b,0x7c,0x30,0xaa,0x38,0x5c,0x15,0xdf,0x69,0xb8,0x36,0x1e,0x75,0xcc, - 0x2c,0x71,0xdf,0x7c,0x16,0x72,0x1c,0x5d,0x2a,0x13,0x70,0x11,0x62,0xe6,0x15,0x8c, - 0xda,0x0b,0xeb,0xc9,0x24,0xd0,0x15,0xaf,0x2a,0xc2,0x38,0x83,0x32,0xa4,0xc2,0xf7, - 0xe2,0xa3,0x00,0x5b,0x8a,0xda,0x06,0x7c,0x99,0x29,0xe4,0xad,0x53,0x98,0x58,0xe5, - 0x15,0x6d,0x4e,0x4e,0x4f,0x11,0xed,0x41,0x73,0xc2,0xb8,0xa2,0x9a,0x6e,0xb4,0x28, - 0x1f,0x5c,0x82,0x7e,0x7e,0xd3,0x94,0xea,0x1a,0x4e,0x03,0xee,0xa3,0xea,0x0f,0x56, - 0xd5,0x92,0x8d,0x9b,0x6d,0x65,0x1f,0xef,0x32,0x24,0x57,0x36,0x34,0x9e,0x22,0x4f, - 0x62,0x5d,0xa2,0x09,0x79,0x6f,0xaa,0xd7,0xe0,0xac,0x88,0xb1,0x8d,0x92,0x08,0x2f, - 0xd2,0x0d,0xce,0x68,0x77,0x11,0xe4,0x02,0xfb,0xb7,0x0f,0x6f,0x2a,0xe1,0xf2,0xce, - 0xd1,0x62,0x72,0x80,0xd7,0x00,0xf7,0x7f,0x71,0xa0,0x8d,0x76,0x6c,0x50,0xaa,0xbc, - 0x15,0xcc,0x61,0x86,0x7f,0x17,0xcc,0x25,0xca,0x06,0x3d,0x80,0x5b,0xe2,0x07,0x54, - 0xbd,0xab,0x6c,0x40,0x77,0xa4,0xb6,0x8d,0xff,0xfc,0xfd,0x20,0x70,0x52,0xd5,0xa7, - 0x50,0x50,0x77,0x62,0x96,0xa2,0x27,0xb6,0x40,0x51,0xf6,0x5c,0x09,0xc0,0x15,0xe2, - 0xe0,0x46,0x49,0x70,0x04,0xf5,0x1c,0xb7,0x58,0x18,0xcd,0xde,0x7e,0xdd,0x3f,0xab, - 0x41,0x8d,0x04,0x52,0xa5,0x3f,0xff,0xed,0xb2,0x88,0xd4,0x32,0x13,0x55,0x96,0x85, - 0x0f,0x75,0x78,0x68,0xf5,0x6a,0x29,0x43,0xf7,0xd5,0xc0,0x5f,0x9d,0x14,0x4e,0xf5, - 0x50,0x07,0x3c,0xa9,0x8f,0xa1,0x97,0x2a,0x10,0xc7,0xf8,0x06,0x9d,0x2d,0x77,0x65, - 0xef,0x61,0x25,0x84,0x95,0x30,0x08,0x5a,0xca,0xf0,0x13,0xa3,0xe2,0x44,0x39,0x35, - 0xfb,0x67,0x4a,0x4d,0xb6,0x32,0x87,0x8e,0x3e,0xb4,0x22,0x2a,0xdc,0xa1,0xff,0x1b, - 0x5c,0xae,0x65,0xf6,0x9a,0xd6,0xa1,0xfc,0xaf,0xdd,0x89,0x6a,0x29,0xb8,0x04,0x01, - 0xd1,0x99,0xa7,0x33,0xc9,0x66,0x20,0x05,0x1d,0x4a,0x9b,0x5a,0x4d,0xd3,0x86,0x92, - 0xe2,0xb2,0xeb,0xfa,0xe2,0x5a,0xaa,0x02,0x84,0xea,0x42,0x96,0x41,0x63,0x3a,0x2c, - 0x27,0xf3,0xb0,0x5f,0x4e,0xd6,0x61,0xb9,0x9c,0x23,0xab,0x57,0x0b,0xdf,0xf4,0x48, - 0xb7,0xdd,0x77,0x65,0x2b,0x59,0x43,0x92,0x8a,0x05,0xec,0xcc,0x2c,0x13,0x37,0xd5, - 0x52,0x0a,0x6d,0x09,0xc2,0xda,0x19,0x0f,0xa1,0x9b,0xf8,0x66,0x8d,0x1f,0x30,0x69, - 0xe0,0xf0,0x4c,0x4d,0x23,0xd7,0x1e,0xa9,0x88,0xd6,0xea,0xbe,0x33,0x95,0x64,0xb8, - 0xa4,0x3e,0xdd,0xdc,0x8c,0x86,0x29,0x12,0xd6,0x4b,0x90,0x32,0xec,0xe4,0x9a,0xea, - 0xc6,0xa1,0x7b,0x34,0x9a,0xd8,0x23,0xd0,0x8a,0xf3,0x44,0x2c,0xb9,0xd5,0xc7,0xab, - 0xc8,0x48,0xf8,0x76,0x6b,0xbc,0x4a,0xcd,0x3f,0x51,0x52,0x82,0x90,0x40,0xd2,0x97, - 0x5a,0xf9,0x6b,0x78,0x1e,0x56,0x08,0x4a,0x65,0x48,0x22,0x34,0xb5,0x45,0x81,0xb9, - 0x96,0x92,0x70,0x25,0x54,0x45,0xc8,0x13,0x4b,0x47,0x45,0xa4,0xb3,0x94,0x82,0xe3, - 0x07,0xdd,0xf6,0xc0,0xd7,0x78,0xab,0xf0,0x84,0xf2,0xe8,0xa4,0xcc,0x2c,0xe0,0x4c, - 0x3e,0x3d,0xb1,0x18,0xa2,0x82,0xaa,0x6e,0x5a,0x38,0x4c,0x4e,0xb9,0x08,0xed,0x41, - 0x13,0x92,0x54,0xe5,0x85,0x88,0xa5,0x2a,0x22,0x87,0x6d,0x9d,0xdc,0x2f,0xcd,0x7f, - 0xb1,0x7c,0xe8,0x88,0xeb,0xd4,0x3a,0x48,0xb8,0x46,0x34,0xf5,0x3c,0x9e,0xc0,0x96, - 0xe4,0xc7,0xf1,0x14,0x06,0x2b,0xa4,0x39,0x1a,0xe6,0x50,0x7e,0xaf,0x34,0x4c,0x01, - 0xe6,0x94,0x51,0xa2,0x15,0x2d,0x48,0xe9,0x7a,0x23,0x15,0x2a,0x11,0xd3,0xff,0xd6, - 0x4c,0x45,0xa8,0xa3,0xb1,0x35,0x54,0x21,0x68,0xc2,0x6b,0x44,0x21,0xf6,0x96,0x21, - 0xb6,0x31,0x32,0xff,0xde,0x82,0x29,0x86,0x00,0x87,0xa3,0x4e,0xd2,0x2b,0x85,0xe3, - 0x4b,0xea,0x04,0xbe,0xef,0xdf,0x3e,0x2d,0x6f,0x22,0x72,0x72,0x2c,0x58,0x81,0x0c, - 0xcb,0x35,0x70,0x43,0x34,0x81,0xfb,0xc1,0xbd,0x0b,0x12,0x42,0xa3,0xd3,0xb2,0x64, - 0x0a,0x1d,0xb4,0x50,0x2a,0x8f,0x08,0xe2,0xb4,0x9b,0x80,0xb2,0x6b,0xfd,0x5f,0x40, - 0x24,0xf5,0xf3,0x57,0x78,0x4f,0xd3,0x98,0x14,0xa4,0x20,0x61,0xa5,0x7e,0xb5,0x0e, - 0x3e,0x27,0x06,0xe9,0xa8,0xab,0x13,0x20,0x20,0xc3,0x31,0xdd,0xd2,0x59,0xae,0x7a, - 0xbf,0x6e,0xdc,0x29,0x6a,0x1e,0x76,0x8f,0x0a,0x05,0x64,0xa7,0xd9,0xda,0x8e,0x5b, - 0x3b,0x66,0x1c,0x9f,0x2c,0x57,0x3c,0x71,0x2b,0x9e,0x54,0x54,0x54,0x2b,0x35,0x1a, - 0x7a,0x27,0x8b,0x45,0xb7,0xc1,0xc1,0xb5,0x33,0x3a,0xbd,0xa2,0x51,0x9e,0x51,0x75, - 0x22,0x5b,0xb5,0x91,0xb9,0x7c,0x1f,0x8e,0xee,0xdd,0x73,0x7d,0xf3,0xf1,0x70,0x47, - 0x95,0xa2,0x48,0x4b,0x8a,0xdd,0xf1,0xbc,0x13,0x52,0x6f,0x6e,0xf2,0x4f,0x43,0x8c, - 0xfb,0x62,0xf8,0x99,0x76,0xc3,0xf2,0x8f,0x0c,0xe5,0x6c,0xc6,0xe4,0xc6,0x4f,0xf7, - 0x2e,0x4d,0x7a,0xb9,0xde,0xad,0x78,0x3f,0xd3,0xbf,0x02,0xef,0x16,0x88,0x81,0xb8, - 0xc1,0x4c,0x94,0xb8,0xc0,0xdb,0xed,0x3f,0x29,0xa8,0x27,0x28,0xd8,0xa8,0xd2,0xf9, - 0xb7,0x53,0x2b,0x9e,0x9b,0x43,0x86,0xb7,0x66,0xf7,0x3a,0x1b,0x8b,0x2f,0xd0,0x58, - 0xb5,0xa8,0x4c,0x20,0xf1,0x99,0x5d,0xb8,0x9d,0x6e,0x1b,0x08,0x48,0xe4,0xbf,0xd6, - 0x11,0x7c,0x6a,0xdd,0x78,0x49,0xdb,0xa5,0xe0,0x0a,0x89,0x3a,0x8d,0xd1,0xf0,0x45, - 0xf0,0x7d,0xd2,0xfa,0x32,0x87,0x40,0xd2,0x59,0x25,0xf7,0x33,0xb1,0xef,0x36,0xc7, - 0x8f,0xb1,0xe0,0x15,0xb7,0x27,0x3d,0xe2,0x2c,0xc5,0xf3,0xa8,0xb5,0x61,0xdd,0x2d, - 0xa9,0xfd,0x61,0x02,0x0a,0x2c,0x3b,0x5c,0x9a,0x90,0x77,0x79,0xb8,0x28,0x19,0x60, - 0xd7,0x9b,0x34,0xe9,0x3f,0x00,0x48,0x98,0x46,0x89,0xd0,0x23,0x41,0xd3,0x70,0x6c, - 0x76,0x9f,0x07,0xbf,0xd4,0xf5,0xe0,0x57,0x8d,0x9d,0xa8,0xbb,0x79,0x03,0x1e,0x9f, - 0x9e,0xf0,0xa1,0x45,0xc2,0x69,0xb6,0xf7,0x00,0xd1,0x75,0x38,0x4f,0xda,0x72,0xf7, - 0x7d,0xfb,0x09,0xb5,0xba,0x1e,0x3c,0x83,0xc0,0x68,0x42,0x49,0xdf,0x22,0xf1,0x61, - 0xf7,0x91,0xa4,0xba,0xc3,0xcd,0xa5,0xf3,0x8b,0x4f,0xa5,0xa1,0x41,0x01,0x64,0xb8, - 0xa7,0xac,0xd5,0x4e,0xe5,0x67,0xf1,0x5a,0x2f,0x43,0x36,0x72,0xab,0x73,0x00,0x53, - 0x0b,0xa3,0x26,0x18,0x77,0xc2,0x16,0xb1,0x65,0x7e,0x84,0xc5,0x34,0x81,0xd5,0xc5, - 0x61,0x99,0x30,0xdf,0x29,0xf9,0x65,0x58,0xa7,0x32,0xb0,0x3f,0xa3,0x4b,0x95,0xe4, - 0xf7,0x93,0x73,0xfd,0x77,0x85,0xbb,0x23,0x71,0x08,0x2c,0x92,0x59,0x00,0x35,0x64, - 0x86,0xa9,0x69,0x8e,0x05,0xd5,0x49,0xa3,0x84,0xb4,0x20,0xdf,0x16,0xa5,0xcf,0x5a, - 0x46,0x17,0x2d,0x54,0xe2,0xeb,0xab,0x8c,0x34,0x1e,0xac,0x61,0xec,0xc2,0x20,0xcc, - 0x02,0x9d,0xfa,0x5c,0x4f,0xb9,0xa8,0xc7,0xf7,0xfc,0x1c,0x9f,0xf3,0xf9,0xf9,0x3e, - 0xef,0xab,0xce,0xf6,0xb9,0x9f,0x16,0x11,0xb6,0x43,0x0d,0x53,0x28,0x00,0x99,0xe2, - 0xef,0xf9,0x99,0x06,0x59,0x09,0x7b,0x11,0xf7,0xa4,0x1c,0x7d,0xdd,0x2a,0x3f,0xd7, - 0x62,0xd7,0x00,0x49,0x86,0x45,0x39,0x08,0x03,0xdc,0x25,0x5a,0xd3,0xa5,0xb3,0xbb, - 0x24,0x97,0xc9,0x58,0xee,0x01,0x92,0x04,0xf2,0xa4,0xdf,0x1b,0x64,0x79,0xd2,0x85, - 0x10,0xa4,0x1d,0xa1,0xde,0x68,0x12,0x13,0x3e,0x05,0xe5,0x52,0xfc,0xc1,0x55,0x16, - 0x2e,0x9f,0xf2,0x5f,0xbc,0x6e,0x74,0x35,0x70,0xc3,0x62,0x61,0xd9,0xeb,0x5a,0x87, - 0x3d,0x3e,0xb3,0xf5,0xc3,0xbe,0xc1,0xbf,0x5d,0x74,0x1f,0x63,0xd9,0xf0,0x7d,0x7a, - 0x09,0xa7,0xf5,0x9d,0xa5,0xe9,0x12,0xc2,0xae,0xcc,0x64,0x1e,0xe2,0xeb,0x83,0x9b, - 0x6e,0xae,0x36,0xf5,0xa4,0xf1,0x56,0xa7,0x4b,0xe3,0x29,0x12,0xd5,0xef,0xf6,0x98, - 0x5e,0xba,0x3d,0xa3,0x98,0x98,0xb1,0xd3,0x3d,0x4a,0x61,0x65,0x7b,0xc3,0xae,0x41, - 0xde,0x9c,0x61,0x42,0x96,0xe6,0x0c,0xa7,0x50,0xb4,0x1c,0xb5,0x3d,0xcd,0x49,0x02, - 0x4a,0xd0,0xbd,0x81,0x31,0xb3,0x10,0x97,0xdd,0xc0,0x08,0x5e,0x5d,0x78,0x0a,0x41, - 0x4b,0x0b,0x04,0xf4,0x5e,0xbd,0xf0,0x10,0x75,0x84,0x6a,0x42,0x35,0x09,0xa2,0x1a, - 0x3f,0x47,0x26,0x1e,0x4c,0xb3,0x7d,0x83,0xf4,0x2d,0xf9,0xe6,0x8e,0x30,0x8f,0xb0, - 0x46,0xbb,0x43,0x32,0xd7,0xfb,0xed,0xc3,0x6b,0x88,0x26,0xe3,0x11,0x44,0x47,0xe1, - 0x27,0xc9,0xdc,0xd8,0x35,0xb6,0x88,0x17,0x37,0xef,0x56,0xc6,0x08,0xe1,0xd2,0x8f, - 0x0a,0x2e,0x24,0xfd,0xa5,0xf4,0xb0,0x61,0x44,0x78,0x95,0x30,0x6e,0xab,0x69,0xa1, - 0xa8,0x0e,0x5e,0xe2,0xf3,0x04,0x19,0x8e,0x60,0x63,0xd5,0xa3,0xf1,0x2e,0x21,0xdc, - 0xaa,0x1a,0xc3,0x96,0xb6,0x07,0x79,0x4c,0xb0,0x64,0x38,0x2f,0x9e,0xde,0xdb,0xac, - 0x37,0x11,0x6a,0xdb,0xde,0x54,0xf0,0x1a,0xff,0xc6,0x6d,0x5c,0x3f,0x5c,0x27,0xde, - 0x7d,0xdc,0x15,0x0c,0x01,0x75,0xf2,0xb4,0x29,0x17,0x1e,0x25,0xe4,0xa7,0x66,0x83, - 0xb2,0x40,0xc9,0x38,0x49,0xaa,0x70,0x4a,0x3b,0x53,0x5d,0xed,0x25,0x05,0x05,0x7a, - 0xf7,0xcb,0x56,0x5f,0x24,0xd3,0xbe,0xf1,0x24,0x64,0x2e,0xb1,0xd1,0xc1,0x36,0xb7, - 0x52,0xab,0xc9,0xfb,0x29,0x59,0xc3,0x23,0x5c,0x89,0x33,0x29,0xa9,0x0a,0x16,0x1e, - 0x66,0x58,0x9a,0x1a,0x53,0x09,0x15,0x3f,0x25,0x1b,0x32,0x6e,0x91,0xad,0x69,0xbe, - 0xe3,0x2c,0x4d,0xe7,0xb6,0xe4,0x39,0x4d,0x95,0x5f,0x49,0x5f,0x6c,0x09,0xc3,0x5b, - 0x42,0x37,0x76,0x88,0xa0,0xf7,0x96,0x75,0x77,0xbf,0x22,0xde,0xe3,0x63,0x11,0xb2, - 0x02,0x47,0xe7,0x2e,0x6d,0x1a,0x15,0x96,0xb1,0x7c,0x2d,0x6f,0xce,0xb0,0xf5,0x79, - 0xf7,0x4b,0xd8,0xd2,0x86,0x6d,0x8c,0xc4,0x7f,0x12,0xeb,0x8c,0xc6,0xd3,0xb8,0x73, - 0xd8,0x4a,0x8e,0x3a,0x1f,0xf3,0xaf,0xb7,0xfa,0x50,0x5e,0x9a,0xf5,0xc7,0x46,0xcc, - 0xa0,0xb8,0x54,0xa3,0xb5,0x16,0xee,0xf6,0x43,0x62,0xdb,0xcf,0xe8,0x79,0x74,0xc4, - 0xcb,0x26,0xae,0xe5,0xd1,0x0e,0xf3,0x98,0x3a,0x2e,0xd5,0xee,0xf6,0xbc,0x57,0x72, - 0x0c,0xb9,0x0f,0xc2,0xba,0x22,0x7b,0x05,0x94,0xf3,0x8e,0x4d,0x10,0x2c,0x9a,0x6c, - 0x3e,0xdb,0x2b,0x85,0xc3,0xbd,0xdb,0xf0,0x19,0xa0,0x21,0xeb,0xbd,0x1e,0xd7,0x84, - 0x72,0x8e,0x4b,0x40,0xb4,0xa5,0x28,0xe0,0xb3,0x16,0x0b,0xf9,0xa2,0xd8,0xda,0x09, - 0xed,0x8f,0xcf,0x60,0x24,0xec,0x58,0x6e,0x4b,0xef,0x61,0x43,0x97,0x4a,0xe9,0x0e, - 0x33,0x5e,0x3f,0x3a,0x9a,0x2c,0x7c,0xc2,0x03,0x73,0xc4,0x66,0x2e,0xec,0xf2,0xc9, - 0x80,0xc2,0x8a,0x4a,0x08,0xb4,0x26,0x61,0x79,0x38,0x7e,0x18,0xe0,0x3a,0xd7,0x98, - 0x14,0x31,0x97,0xb3,0x76,0xaf,0x4b,0xb5,0xfa,0xb9,0x94,0x47,0x6e,0x23,0x6c,0x55, - 0x16,0xac,0xc6,0x0d,0x17,0x9b,0xd6,0x3a,0x15,0x7d,0xb0,0x5c,0xed,0x33,0x90,0x47, - 0x05,0x45,0x69,0xb3,0x63,0x48,0xea,0x5b,0xbf,0xa3,0x2b,0x44,0x3d,0x01,0xff,0x52, - 0x55,0xc3,0xc3,0xe5,0x7f,0x06,0x88,0x2c,0x36,0x78,0xc9,0x3b,0x32,0xfd,0x43,0xa5, - 0x6b,0x94,0xc7,0x05,0x51,0x83,0x3a,0xa5,0xd2,0x52,0xc2,0x0a,0x2b,0xd0,0x64,0x15, - 0xfd,0xfd,0xa2,0x8e,0x65,0x8c,0x7e,0x01,0x8d,0x52,0xf7,0x6e,0x12,0x77,0x7e,0x21, - 0x15,0xed,0x4a,0xcc,0x60,0x95,0xd1,0x5c,0xe6,0x53,0x21,0x59,0xd9,0x81,0xe8,0x81, - 0xd9,0x17,0xd9,0xea,0x1e,0x30,0x2a,0x81,0xf9,0xa0,0xa0,0x6e,0x94,0x69,0x19,0x4d, - 0x25,0xbc,0x40,0x7f,0x82,0x5b,0x75,0xc5,0x10,0x81,0xa5,0x43,0xd6,0x2b,0x5f,0x78, - 0x83,0xf9,0xa4,0x09,0xf2,0x87,0x38,0x1a,0x58,0x5c,0x35,0x02,0x72,0x90,0x23,0x64, - 0xf7,0xb5,0x18,0xe1,0xd1,0x45,0xb8,0x3e,0xfd,0xed,0xeb,0xa8,0xcc,0x9d,0x58,0x8b, - 0x12,0x6c,0x63,0x02,0xc3,0x58,0x48,0x15,0x83,0xee,0x84,0xd4,0xb5,0x72,0x74,0xdf, - 0x9d,0x69,0xec,0x0e,0xe3,0xe4,0x14,0x41,0xf1,0xf0,0xa4,0x8d,0x60,0x74,0xaf,0xa2, - 0x63,0x09,0xf9,0x7e,0xae,0xfe,0x58,0xa9,0xf3,0xc4,0x63,0x24,0x5c,0xfe,0xc1,0x47, - 0xea,0xf7,0x5a,0xbd,0x00,0x1a,0xfc,0xc8,0x3c,0x00,0x25,0xa0,0x7a,0x72,0x4a,0x64, - 0x23,0x12,0x1c,0x92,0x00,0xe1,0x7d,0x83,0x2e,0xdc,0xa0,0x25,0xfc,0xc9,0xb8,0xaa, - 0x50,0x76,0xbc,0xda,0xef,0x61,0x36,0xcc,0xe4,0x8a,0xa2,0xdf,0x43,0xf7,0x23,0xa8, - 0xb0,0x64,0xfa,0x05,0xa6,0xcf,0x82,0xb3,0x41,0x97,0xa2,0x54,0xbe,0x9e,0xe5,0x8a, - 0x2a,0xa4,0xd4,0xfe,0xa9,0x09,0x91,0xa8,0x13,0x32,0xf8,0x1d,0xa4,0xe2,0x2b,0x95, - 0x04,0x4b,0x2b,0x27,0x82,0xe5,0x98,0x26,0x67,0x5b,0x2e,0x3a,0x12,0xa7,0xee,0x39, - 0x42,0xdc,0x55,0x8e,0xd2,0xb6,0x51,0x39,0xf5,0xc1,0x07,0x3c,0x14,0x4d,0x8c,0x06, - 0x9d,0x20,0x6e,0x0f,0xfb,0x9d,0x09,0x9a,0x69,0x57,0x1a,0xb8,0x5d,0xa1,0x36,0xdd, - 0x2f,0x20,0xc4,0xea,0xdd,0x1c,0xde,0x34,0xb3,0x9e,0xed,0xe6,0x64,0x43,0xf6,0x3f, - 0x2b,0xfa,0xba,0x13,0x2e,0xf5,0xa2,0xc1,0xe9,0xf0,0xdd,0x2f,0x47,0x41,0xdd,0x32, - 0xb7,0xb0,0xe5,0xf7,0x46,0x05,0x08,0xa5,0x77,0x35,0x08,0x9f,0x3d,0x56,0x94,0x48, - 0x8a,0x29,0x94,0x48,0xe2,0x3e,0x68,0x41,0x6a,0xef,0x29,0x16,0xcc,0x4a,0x36,0x65, - 0x37,0x25,0xee,0x26,0x72,0xbf,0x80,0x1f,0x1a,0x91,0xa5,0xaa,0xb2,0xbf,0xd2,0x88, - 0xfe,0xec,0xe1,0x8a,0x89,0x95,0x0c,0xdc,0x5f,0x23,0x3b,0x0f,0xdc,0x1d,0xe8,0x86, - 0x00,0x7d,0x2a,0x1b,0x82,0xdc,0xae,0x2a,0xca,0x3c,0x21,0xdd,0x2f,0x57,0xb1,0xc3, - 0x49,0x5a,0xa0,0xbe,0x7f,0x80,0x30,0xba,0x5e,0x14,0xe5,0xb1,0xe3,0x92,0xf8,0x3e, - 0x7d,0x4a,0xf3,0x69,0x95,0xac,0x8e,0xe6,0x5e,0xec,0x34,0x1f,0x2e,0x28,0xd7,0xb6, - 0x15,0xbb,0xcf,0x15,0x94,0xfd,0x4d,0xbd,0xdf,0xc1,0x73,0x13,0x08,0x01,0xc6,0x10, - 0x81,0x78,0x53,0x93,0x53,0xff,0xbc,0x70,0x13,0x4d,0x6a,0xf5,0x93,0x93,0x0c,0xd6, - 0x49,0xda,0x57,0x10,0xf5,0xf2,0x8d,0x87,0x5c,0xc2,0xb5,0x97,0x6b,0xff,0xf2,0xed, - 0x55,0x91,0x8c,0x56,0x5c,0x61,0x75,0x7c,0x20,0x47,0x65,0x0b,0x18,0x47,0xb2,0xbe, - 0x84,0x49,0xae,0x94,0x74,0x1c,0xe1,0x38,0xd9,0xd8,0x3b,0xfa,0xca,0x70,0xce,0x0b, - 0x35,0xd8,0x46,0x85,0xbb,0x1b,0x0b,0x48,0x20,0xaf,0xbf,0x49,0xaa,0xae,0x68,0x1e, - 0x45,0xf6,0x3c,0xb2,0x84,0x6f,0xfc,0x97,0xae,0xc2,0x82,0x5e,0xae,0x4f,0x99,0x43, - 0x73,0x99,0x91,0x6f,0x6d,0x27,0xfa,0x72,0x72,0x53,0x3c,0xe6,0x67,0xc5,0xe3,0xe9, - 0xf4,0xc8,0x1a,0x93,0xfa,0x97,0x1f,0x1d,0xa0,0xd2,0x0a,0xee,0x73,0x48,0x1b,0xde, - 0x85,0x0f,0x25,0x77,0xe1,0xb6,0xa6,0xec,0x11,0x26,0x71,0x20,0x19,0x12,0x14,0xa0, - 0xe2,0x0a,0x1f,0x32,0xda,0x1e,0x3f,0xbe,0xe7,0xb3,0xad,0xa8,0xa8,0xd0,0x29,0x97, - 0x6c,0xb9,0xb0,0xad,0xb5,0xf2,0xc3,0xae,0x08,0xab,0xd1,0x5b,0xef,0x36,0x9d,0x83, - 0x5a,0xad,0x66,0x72,0x72,0xd3,0xda,0x4e,0xf2,0xb3,0xd6,0x4e,0x72,0x3a,0x6d,0x3d, - 0xb9,0xf3,0xae,0x49,0xb4,0x37,0x0a,0xe2,0x5b,0xe4,0x0e,0xa9,0xfe,0xd1,0x5a,0x8f, - 0x4a,0x05,0xf2,0x98,0x88,0xff,0x67,0xdf,0x1f,0xd5,0xbb,0x7f,0x0f,0xbd,0x24,0x5a, - 0xed,0xf2,0xda,0xe3,0x29,0x36,0xba,0x42,0xc9,0xa7,0x58,0x3a,0xc7,0x15,0x9d,0x96, - 0xea,0xe8,0x13,0x61,0x2b,0xad,0xf9,0x5d,0x62,0x94,0x30,0x78,0x26,0x11,0xb6,0xea, - 0x26,0x50,0x6a,0x60,0x88,0x38,0x19,0x29,0x0c,0x6a,0xd7,0xb9,0x33,0x61,0xca,0xf8, - 0x6c,0x47,0x96,0xa7,0x4a,0xa8,0x69,0xaa,0x75,0x2a,0xb3,0xa1,0x4d,0xaa,0x5e,0xf1, - 0xbe,0x10,0x64,0x75,0x24,0x1e,0xb3,0x34,0xff,0xc8,0x9b,0x09,0xac,0x5b,0xac,0x82, - 0x52,0x66,0xba,0x51,0x45,0xe5,0x3d,0x89,0x7c,0x84,0x6f,0x2c,0xa8,0x4e,0xc5,0xee, - 0x89,0x15,0xa8,0xfa,0x4b,0xd5,0x97,0xa0,0x68,0x18,0x7f,0xe1,0x91,0x75,0xa4,0xa6, - 0xba,0x71,0xbb,0x7c,0x28,0x8d,0xb9,0xe7,0x62,0xe3,0x4d,0x3f,0x75,0x15,0x7f,0x5b, - 0x31,0x65,0xa8,0x70,0x72,0x4b,0x24,0x3d,0xe1,0x93,0xfc,0x43,0xbd,0x25,0x27,0x86, - 0x81,0xe2,0x85,0x8e,0x7e,0xd8,0xeb,0x7f,0x98,0xc8,0xd7,0x2d,0xc3,0x9e,0x89,0x1e, - 0x73,0x46,0xd6,0x11,0xb3,0xd5,0xfa,0x83,0x19,0xf5,0x83,0x3d,0x34,0x9f,0xa9,0x23, - 0x12,0x27,0x89,0xf0,0x30,0x4d,0xc5,0x2c,0xa8,0xee,0xe3,0x59,0x23,0x8f,0x10,0xe7, - 0x99,0x68,0x82,0x17,0x78,0xc8,0x6f,0xd1,0x06,0x1e,0x4a,0x3c,0xe8,0x48,0xb3,0xcd, - 0xfa,0x19,0xd2,0xe1,0x83,0x7e,0xe4,0x1f,0x83,0x9f,0x0d,0x67,0xbf,0x4d,0xa2,0x5c, - 0xdc,0x7c,0xf7,0xdc,0xb8,0xab,0xf9,0xd6,0xb7,0xcf,0xa1,0xab,0x4b,0x2e,0x4a,0xa9, - 0xff,0xc1,0xa9,0x5b,0x4f,0x9e,0x23,0x6b,0x58,0xce,0x42,0xe2,0xd6,0xf3,0xa6,0xdd, - 0x10,0xf7,0x5e,0x36,0x3b,0xbd,0x5a,0xd8,0x0b,0xc2,0xda,0x45,0x2d,0x24,0x17,0xdb, - 0xd1,0x05,0xa5,0xe0,0x91,0x52,0x86,0xb5,0x70,0x18,0xb6,0xf8,0xaf,0x1b,0x0c,0x64, - 0xd6,0xa7,0xcf,0xec,0x27,0x27,0x09,0x21,0x55,0x61,0xbe,0x8e,0x6c,0x98,0xd1,0xbf, - 0x34,0x46,0x7e,0x7d,0x58,0xfd,0x91,0x8d,0x39,0x9e,0xf1,0x10,0xe5,0x9d,0xc7,0x64, - 0x2c,0x4f,0x4f,0x62,0xa7,0xe7,0xd9,0xf7,0x3b,0x0d,0xb9,0x1d,0x31,0x77,0xfb,0x00, - 0x32,0x93,0x3c,0xfb,0x81,0x21,0x88,0xa8,0x45,0x04,0x89,0xa2,0x54,0xf2,0x04,0x8e, - 0x91,0x5c,0xc0,0x16,0x16,0x74,0x30,0x25,0x10,0xf1,0xfc,0x73,0xe2,0x50,0xdc,0x39, - 0x50,0x1d,0xac,0xfc,0x38,0x88,0xd5,0x61,0x10,0xd1,0x74,0x95,0x22,0x17,0x03,0x9a, - 0x6b,0xd5,0x89,0x83,0x2c,0x07,0x8e,0x19,0x60,0x1b,0x0d,0x8d,0x4b,0xa3,0x11,0x16, - 0x12,0xe0,0xda,0x3a,0xa1,0x59,0xd5,0x4f,0x52,0xe7,0x3e,0x76,0xde,0xb8,0xc8,0x28, - 0xfc,0x21,0x2d,0x2e,0x19,0x5d,0xc7,0xde,0x79,0x6a,0xf4,0x71,0xe8,0xbe,0xbc,0x14, - 0x3c,0x72,0x83,0x3b,0x3c,0xfc,0x6d,0x02,0xe5,0x75,0x98,0x98,0x01,0xd9,0xb8,0xe2, - 0xf7,0xe3,0x3c,0x8e,0x6b,0xa6,0xc4,0xf7,0x38,0x73,0x98,0xd2,0x2a,0x48,0xb9,0x27, - 0xf4,0x7c,0x3c,0xbc,0x26,0xc8,0x44,0x7a,0x9a,0x1b,0x3f,0xf6,0x6f,0xb3,0x5e,0xb4, - 0x13,0x27,0xe1,0xdf,0xc3,0xa2,0xc2,0x8f,0xd4,0x76,0x00,0x2c,0x68,0xe1,0x3c,0x49, - 0xc2,0x5f,0xbe,0xa7,0x68,0x74,0xd0,0x16,0x85,0xb5,0x65,0x3c,0x29,0x5d,0xd0,0x2c, - 0x6a,0x53,0x08,0xc5,0xa0,0x3b,0x20,0x23,0x80,0x30,0xa9,0x28,0x0e,0xd7,0xd0,0xc8, - 0x94,0x4a,0x00,0x6e,0xdb,0x7d,0x3b,0xee,0xd3,0xac,0xe6,0x49,0x11,0x26,0x79,0x63, - 0x84,0xd7,0x24,0xec,0x7d,0x3f,0xb4,0x45,0xde,0x10,0xb7,0x0e,0x3e,0xec,0xef,0xbf, - 0x46,0x81,0x29,0xed,0x2c,0x39,0x9f,0xf0,0xdb,0x7f,0xfb,0x81,0x23,0xe6,0xe5,0xa3, - 0x69,0x51,0x78,0xb7,0x3f,0x05,0x2d,0x82,0x83,0xff,0xb6,0xe4,0xe9,0x4a,0x1a,0xe8, - 0xe3,0x17,0xfb,0xe0,0x14,0x23,0xd7,0x5f,0x15,0x25,0x65,0x29,0xcf,0xb9,0x64,0x8e, - 0xad,0xd4,0x75,0x02,0xb3,0x12,0x34,0x8c,0x1a,0xf4,0xb8,0x54,0xf4,0x80,0x8b,0x62, - 0x77,0x64,0xc9,0x0b,0x3f,0xd2,0x04,0x63,0xeb,0xa0,0x00,0x73,0x8c,0x8f,0xa6,0x09, - 0x1f,0x6c,0x01,0x16,0x17,0x97,0xa4,0xa2,0xd2,0x0f,0x7d,0x2a,0x37,0xf3,0x6a,0xf5, - 0x38,0xb1,0x5c,0x4d,0xd2,0xb4,0x1e,0xdd,0x0d,0x0c,0x48,0x93,0x7c,0x95,0xa1,0xce, - 0xec,0xf6,0x98,0x9f,0x29,0x33,0x72,0xa2,0xf0,0x99,0x6e,0xfb,0xaf,0x83,0x03,0x5b, - 0x14,0xcc,0xde,0x14,0x6e,0x85,0x96,0xfc,0x50,0x0a,0x28,0xf9,0x65,0x53,0x5c,0xf4, - 0x81,0x2d,0xf4,0xfa,0x3d,0x72,0xfb,0x13,0x3a,0xef,0xaa,0x83,0xb5,0xe2,0x02,0x15, - 0xb7,0x07,0x76,0x8c,0x51,0x40,0xa3,0x2a,0x6e,0xbb,0xa9,0xd2,0xd5,0xda,0xe5,0x90, - 0x83,0x27,0x64,0x27,0xce,0x02,0x15,0x3f,0xd5,0x79,0x30,0xc6,0x89,0x0b,0x24,0x6e, - 0xfb,0x85,0xb8,0xb2,0x2d,0xa5,0xc0,0x7c,0x9f,0x3f,0x22,0xaf,0x0f,0xd2,0xdc,0x06, - 0x66,0x68,0x17,0xf3,0x54,0xa5,0x37,0x67,0x9e,0xe5,0x03,0x63,0xa9,0xd1,0xa1,0xa7, - 0xd2,0x85,0x25,0x75,0xac,0x71,0x96,0x46,0xb7,0xb0,0x96,0x37,0xb7,0x02,0x63,0x5c, - 0x0b,0x2c,0xf1,0xde,0xcb,0x6b,0xe6,0xbc,0xc2,0x74,0x89,0xcd,0x7d,0x1a,0x64,0x69, - 0x78,0x46,0x6c,0xa0,0x7e,0x83,0x1b,0x29,0x7c,0xee,0xd4,0x26,0x0e,0x32,0x9e,0xb6, - 0x08,0x5e,0x54,0xaf,0x0f,0xaf,0x66,0x71,0xf8,0xd2,0x18,0x2e,0x06,0x8f,0x37,0x60, - 0x2e,0xae,0x6d,0xc8,0xc5,0x06,0x28,0xd8,0x22,0xff,0x7a,0x43,0x5c,0xba,0xdf,0x20, - 0xe5,0xe3,0xb8,0x64,0xd2,0x6d,0x6c,0xa9,0x68,0x4e,0xce,0x72,0xa0,0x3d,0xbe,0x14, - 0xa4,0x17,0x8b,0x5b,0xc4,0x62,0x71,0xbe,0x00,0x8e,0xd2,0x90,0x4f,0xc3,0x6b,0x7c, - 0xc9,0x23,0x8c,0x4b,0xd0,0x2b,0xfd,0x2d,0x5c,0x19,0x57,0x7d,0xa7,0xd8,0x92,0x53, - 0xf1,0x91,0x04,0xb2,0x34,0xd8,0xab,0xb1,0xbb,0x2c,0x3d,0xe5,0x6b,0x42,0xd0,0x73, - 0x3f,0x36,0xe5,0xd0,0x0f,0x62,0x26,0xef,0xa7,0xc8,0x35,0x22,0x4a,0x16,0xfc,0x4b, - 0x1f,0x56,0x3b,0x2b,0x5d,0xe1,0x6a,0x11,0x37,0x31,0x06,0xd4,0x36,0x48,0xb0,0x7a, - 0xee,0x7a,0x80,0x3c,0xcd,0xc3,0xb3,0x0b,0x57,0xcc,0xdd,0x06,0x3f,0x5f,0xb3,0x88, - 0xd5,0x35,0x63,0xe1,0x25,0xad,0xd6,0xdd,0x46,0x7e,0xd1,0xc7,0xfe,0xdd,0xa9,0x26, - 0x63,0x92,0xf8,0x02,0x44,0x09,0x33,0x3c,0x7a,0x93,0x69,0x6a,0xc2,0xbe,0x8b,0x1a, - 0xee,0x3d,0x31,0xdd,0xc1,0x07,0x1c,0x7f,0x92,0x2f,0x76,0x44,0x16,0xb9,0x86,0x70, - 0x48,0x93,0xf7,0x77,0xf8,0x19,0x23,0xb9,0xe1,0xd9,0xf3,0xf6,0x06,0x25,0xde,0xe0, - 0x35,0xbd,0xf9,0x9a,0x00,0xb4,0xe9,0xf5,0x82,0xc7,0x4a,0x7a,0xc1,0xef,0x0c,0xf9, - 0x1c,0x55,0xcf,0x33,0x5e,0x51,0xd0,0xe3,0xe1,0x0e,0x6c,0x35,0xce,0x1b,0x39,0x0c, - 0xb0,0x22,0x2a,0x96,0xd0,0xff,0x48,0xc0,0xda,0x09,0x0d,0xd3,0x2c,0x82,0x9e,0xfe, - 0x26,0x31,0x31,0xb3,0x08,0x49,0xfd,0xa0,0x17,0x3b,0xe5,0xbb,0x42,0xa3,0x54,0xa3, - 0xb8,0x36,0x38,0x90,0x27,0x9f,0xf2,0xca,0x57,0x25,0xc3,0x5b,0x93,0xd9,0xbd,0xf5, - 0x33,0x05,0xee,0x10,0xf2,0xe3,0x90,0x4e,0xa1,0x87,0xb7,0x35,0xda,0x61,0x0d,0x47, - 0xf5,0x74,0xfb,0x6e,0x83,0xf0,0x9a,0xe1,0xee,0xd6,0x3e,0x8f,0x7f,0x46,0x7b,0x38, - 0x21,0x15,0x61,0x8f,0x13,0xa2,0x42,0x80,0xd3,0x07,0x63,0xdf,0x17,0xe3,0x0b,0xd5, - 0xdd,0xb4,0xb8,0x0a,0x0d,0xeb,0xf5,0xee,0xe9,0x69,0xa8,0xd7,0x6e,0x89,0xd1,0xfc, - 0x6d,0xe7,0xe4,0x9b,0x5e,0xf6,0x5d,0xd8,0xa6,0x56,0x48,0x51,0x9a,0x31,0x25,0xd3, - 0x9d,0xb6,0xbc,0x21,0xe8,0x56,0x1a,0xf2,0x42,0x14,0x52,0xd2,0x49,0x46,0x1a,0x96, - 0xf7,0xf4,0x05,0x90,0xea,0x80,0xf5,0xb2,0xfc,0x7a,0x9d,0xe8,0x95,0xc5,0xdb,0xb4, - 0xbf,0xe5,0x12,0xaa,0xbe,0x1d,0x7f,0x1d,0xdd,0xd4,0x9f,0xc6,0xb5,0x9d,0xe4,0x53, - 0x7a,0x51,0x7f,0x5a,0x8f,0xae,0xeb,0xf4,0xad,0x5b,0xf4,0xd5,0xf4,0x4b,0x99,0x54, - 0xa4,0x09,0x3a,0x74,0xa4,0xf1,0x83,0x71,0x74,0x9b,0x7c,0x8a,0x5b,0xe7,0x0d,0xd2, - 0x46,0xe8,0x9b,0x48,0x93,0x4a,0x91,0x08,0xcf,0x98,0xad,0x03,0xa1,0x4d,0x89,0x52, - 0x84,0x30,0x58,0x45,0x1a,0x6e,0x37,0x27,0xb7,0x74,0xcf,0x8c,0xf6,0x09,0xc3,0xfa, - 0x55,0x1f,0x1f,0x82,0x4e,0xdf,0x25,0xf3,0x29,0x7c,0x1c,0xc6,0x46,0xa8,0x60,0x78, - 0xfe,0x03,0xe9,0xc3,0x12,0xe6,0x47,0xc9,0x4d,0x7d,0x27,0xd9,0xf6,0x9c,0x8a,0xc2, - 0x9d,0xc5,0x2f,0xd9,0x27,0x8e,0x35,0x1b,0xc9,0xfe,0xc2,0x5a,0x1b,0xcb,0xfb,0xe6, - 0x66,0xd1,0x3b,0xf4,0x66,0x3a,0xe6,0xfb,0x4f,0xaf,0x8b,0xf2,0x6d,0xf5,0xbc,0x83, - 0x18,0x30,0x53,0x35,0xd9,0xec,0x66,0xa9,0xd6,0x33,0x51,0x7d,0x4d,0x55,0x39,0x75, - 0xcb,0xe8,0x6a,0x3f,0xb6,0x62,0x25,0xd1,0x1d,0x69,0x0c,0x24,0x96,0x5f,0xdf,0x73, - 0x0e,0x54,0xcd,0xfb,0xa4,0xb2,0x2f,0x30,0x05,0x28,0x79,0x86,0xb8,0x86,0x0d,0x38, - 0xec,0x61,0xb0,0x13,0x14,0x63,0x34,0x14,0x7e,0x47,0x95,0x0a,0xcb,0x31,0xc8,0x8a, - 0x94,0x76,0x20,0x75,0xa4,0x6a,0x5b,0xbf,0xf7,0x9e,0xef,0x4c,0x88,0xff,0x50,0x29, - 0x2c,0x17,0x80,0x51,0xe7,0xd7,0x50,0xcf,0x3e,0x49,0x69,0xa6,0x6e,0x32,0xbc,0x6b, - 0x64,0x67,0x9b,0x9b,0x67,0x0d,0xe2,0x0d,0x04,0xee,0x2d,0xa9,0xc8,0x63,0xf7,0x85, - 0xd6,0x9a,0x9c,0xc6,0xf6,0xf7,0x19,0x8d,0xc2,0x2c,0x62,0x88,0x09,0x0c,0xf7,0x6f, - 0x67,0xfb,0x7d,0xd6,0xfa,0x13,0x08,0x4e,0x5d,0x1d,0x29,0x4d,0xb2,0x49,0xca,0xde, - 0x9d,0xd1,0x94,0xa0,0x2d,0x1f,0x65,0x75,0xa7,0xfd,0x6e,0xdd,0xdc,0x3d,0x4d,0x42, - 0x68,0x4d,0xdd,0xf0,0xeb,0xc0,0x5e,0x8e,0xeb,0xab,0xaa,0x65,0xb7,0x04,0x11,0xf7, - 0xe5,0x92,0x65,0xca,0x76,0x42,0x90,0x31,0x6c,0x59,0x90,0xaa,0x1d,0xf9,0x7c,0x98, - 0x5c,0xab,0x1a,0x68,0xc5,0xa8,0xa4,0xd4,0x6a,0x65,0x6d,0x55,0xd9,0xbb,0x64,0xfb, - 0x19,0x06,0xba,0xec,0x56,0x30,0x60,0x18,0xb4,0xcb,0xac,0xb9,0x9b,0x90,0x85,0x9d, - 0x81,0xdf,0xa5,0xab,0x0c,0x73,0xfd,0x72,0xeb,0xa8,0x8e,0x8f,0xfa,0x2b,0x44,0xff, - 0xeb,0xa4,0xb5,0x35,0x99,0xe5,0x2b,0xad,0x74,0xc8,0xeb,0x66,0xc9,0xbe,0xa5,0x4d, - 0x9d,0x10,0x12,0x34,0xad,0x56,0x2b,0xcd,0x36,0x87,0x7a,0xe3,0xe9,0x29,0x74,0x30, - 0x0f,0x87,0xeb,0x39,0x9c,0xb4,0x6d,0x38,0x44,0x84,0x27,0xd0,0xea,0x6f,0x3a,0xb9, - 0xca,0x3f,0xb9,0x14,0xf4,0x6a,0x58,0xf9,0x8c,0x25,0x10,0x15,0xaa,0xc0,0x11,0xeb, - 0x5d,0xb0,0xc4,0xd6,0x29,0xef,0xdd,0x69,0x6a,0xf4,0xb0,0x7f,0x6b,0x6d,0x7f,0x3b, - 0xb9,0x0d,0xcb,0x52,0x47,0x3e,0xe9,0x8f,0xfc,0xbb,0xc9,0x6d,0xb6,0xd6,0xb3,0x5f, - 0xdc,0x31,0xbb,0x45,0x4a,0x20,0x43,0x22,0xfc,0xa4,0xdb,0x61,0xcb,0x26,0x86,0x09, - 0x7f,0xa1,0x77,0x6b,0xb1,0x3b,0xcd,0x23,0x48,0xc6,0xa2,0x1e,0x18,0xa5,0x78,0x7e, - 0x59,0x7f,0xf6,0xac,0xf3,0xb4,0x25,0x8f,0xcf,0xbf,0xe9,0x3c,0x31,0x8f,0xdf,0x7c, - 0xdb,0xd9,0x69,0x6d,0xb7,0x51,0x70,0x5c,0x75,0x69,0xf1,0x29,0x2b,0x25,0xc7,0xb8, - 0xde,0x07,0x44,0xf5,0x4b,0x8d,0x1b,0xb2,0x56,0x7f,0x84,0x45,0xa6,0x7e,0x42,0x7b, - 0xaa,0xcb,0x36,0x4b,0x0c,0xad,0x27,0x93,0xdb,0xf6,0xb0,0x3b,0x85,0x91,0x39,0x2f, - 0x0b,0xad,0x6d,0x4a,0x38,0x21,0x6d,0x37,0x9d,0xc6,0x41,0x9b,0x73,0x95,0x73,0x8a, - 0xc8,0x13,0x2d,0xda,0xfa,0x3f,0xa9,0xf5,0xbf,0x7e,0x42,0xf2,0x15,0x8a,0xd1,0xbe, - 0xe5,0x9c,0x57,0x4a,0x64,0x50,0xf3,0x74,0x4c,0xc4,0x32,0x29,0x56,0x5c,0x92,0x2f, - 0xcd,0x0b,0xda,0x8c,0x43,0x16,0xd2,0x54,0x28,0x53,0x89,0x70,0x2d,0x9a,0x67,0x83, - 0xec,0xb6,0xcd,0xfd,0x53,0xef,0xd3,0x3a,0x96,0xb7,0x90,0x50,0xa7,0x2d,0xb6,0x62, - 0xb3,0xfd,0x8c,0xba,0x09,0xf7,0x05,0x6b,0xa1,0x01,0x1c,0x3a,0x84,0x2d,0xfa,0xe6, - 0x6a,0x3a,0x10,0xc2,0xfb,0x3e,0x46,0xed,0x28,0x53,0x79,0x06,0x7b,0x7e,0x94,0xaf, - 0x36,0xeb,0x5a,0x5b,0xd5,0xb3,0xe9,0x42,0xfe,0x48,0x74,0x01,0xa5,0xa1,0x5e,0xcd, - 0x94,0x0a,0x5c,0x97,0x06,0x8b,0xf0,0xa6,0x66,0xd9,0x9c,0x7b,0x84,0x40,0xe5,0xd4, - 0x9a,0x39,0x56,0x55,0x5b,0x28,0x16,0xe7,0x2d,0xd8,0x51,0x11,0x6a,0x79,0xc4,0x76, - 0x9f,0x90,0x22,0x50,0xb3,0xe2,0x2a,0x80,0x16,0x3c,0xe1,0x7d,0x72,0xbd,0xcb,0x3f, - 0xc5,0x79,0x45,0x96,0x8d,0x60,0xbb,0xc0,0xad,0xe2,0x4f,0x55,0x4b,0xf4,0xf5,0x28, - 0x77,0x28,0x4d,0x1d,0x95,0x5d,0xb6,0xba,0x39,0xe9,0x76,0xc9,0x1a,0x26,0xfe,0x9c, - 0x09,0x0e,0x68,0xf7,0xcc,0x70,0xe0,0xa7,0x7b,0x30,0x3c,0x97,0x77,0x61,0x23,0xeb, - 0x36,0x62,0xad,0x17,0x83,0x51,0xa6,0xf7,0x61,0x81,0xb3,0x5e,0xca,0x95,0x2f,0xc0, - 0x40,0x96,0x3c,0x63,0x15,0x6b,0xb3,0x4d,0x02,0x8c,0x37,0xcd,0x9e,0x84,0x67,0xf7, - 0x88,0xc9,0x19,0xfb,0xfe,0x0e,0xf2,0x1c,0x25,0x1c,0xc0,0x76,0x18,0xd7,0x28,0x89, - 0x4c,0x10,0x3b,0xe1,0xe6,0xdf,0xb6,0x77,0xbe,0xdd,0xf9,0xe6,0x69,0x1b,0xce,0xf5, - 0x50,0x20,0x1f,0x92,0x4a,0xe4,0xe5,0x29,0x74,0x7b,0x7e,0x9b,0x1d,0x14,0x08,0x36, - 0x87,0xb4,0xa0,0x8c,0x67,0x6d,0x2a,0x20,0xed,0x02,0xaa,0xd4,0x2a,0x5c,0x2f,0x84, - 0xe5,0xed,0xcf,0xe3,0x17,0x13,0x9d,0x82,0xfe,0xc6,0xd2,0xb2,0xc4,0x1d,0xcc,0x35, - 0xda,0x27,0xe9,0x98,0x0b,0xce,0x30,0xf1,0xe9,0x66,0xf1,0x04,0xd3,0xb9,0x62,0x97, - 0x74,0xdf,0x8c,0xf9,0x1f,0xee,0xf8,0x87,0x7f,0x04,0x26,0x9a,0xb1,0x3d,0x13,0xf4, - 0x7d,0xcd,0xfd,0x1a,0x3f,0x80,0xe6,0x36,0x1d,0x0b,0x5c,0xe8,0xb2,0xb9,0x5a,0x30, - 0xbf,0xee,0xa5,0x15,0xe2,0x0f,0x9e,0xa0,0xfa,0xe0,0x98,0xb4,0xad,0x4a,0x59,0x06, - 0x8f,0xb6,0x08,0xf1,0x74,0x85,0x98,0x32,0xd4,0xd5,0xd2,0x34,0x67,0x9b,0x13,0x3a, - 0x7a,0x76,0xf9,0x10,0xd0,0x5b,0x13,0xb7,0x45,0xba,0x66,0xa5,0xb7,0x44,0x6a,0x93, - 0xe0,0xc9,0xc9,0x99,0x86,0x9e,0xb9,0xdf,0xb5,0xa2,0xad,0xa2,0x81,0x5d,0x4a,0x31, - 0x34,0xf8,0xe0,0x22,0x85,0x85,0x0c,0x3f,0x15,0xae,0x20,0xc9,0xad,0xf2,0x09,0xd9, - 0x09,0xe5,0x2d,0xe5,0x06,0x6e,0xf9,0x2a,0x6f,0x6d,0x2a,0x99,0xa3,0x3d,0x2c,0x18, - 0x18,0x75,0x02,0xd2,0xad,0x89,0x0e,0x2d,0x9f,0xfa,0x17,0xf8,0x3d,0x72,0x02,0xd4, - 0x68,0x89,0x7b,0x63,0xc5,0xd8,0xaf,0xd3,0x1e,0xe2,0x41,0xf2,0xe0,0xaf,0xd2,0xd2, - 0x9f,0xfb,0x4d,0x52,0x4f,0xbf,0xc8,0x1b,0xfe,0x5f,0x7e,0x22,0x84,0x15,0xc4,0x3b, - 0x0f,0xba,0x77,0x77,0x53,0xda,0x12,0xc5,0x52,0x5c,0xed,0xc2,0xec,0x09,0x8d,0xc4, - 0xad,0xdb,0x58,0x39,0x95,0x3c,0x38,0x89,0x42,0x88,0x9d,0x53,0x5b,0x4d,0x43,0x92, - 0x47,0x97,0x7b,0x49,0x6e,0x10,0x53,0x16,0x6d,0x82,0x4e,0x58,0xf4,0x4c,0x86,0xcc, - 0x1f,0xe0,0x42,0xa7,0x82,0xf9,0xe6,0x93,0x9d,0x6f,0x9e,0x7f,0x4b,0x67,0xe3,0x92, - 0x8b,0x98,0x1f,0xfa,0x8c,0xa8,0x1f,0x4f,0x36,0x37,0x9d,0xa3,0x18,0x85,0x40,0x53, - 0x44,0x1f,0x3d,0xaf,0x9e,0xde,0xe5,0x89,0xea,0x2b,0x96,0x90,0x4a,0x4e,0x2f,0x3c, - 0xdf,0xd7,0x8a,0x1c,0x65,0x7c,0xee,0x77,0x1b,0x66,0xe6,0xec,0x57,0xac,0xcb,0x8e, - 0x92,0x6b,0xc9,0xf4,0x70,0x63,0x3e,0x6b,0x85,0xbf,0xed,0xef,0x6e,0xed,0x75,0x47, - 0xdd,0x5e,0x37,0x88,0x60,0xb8,0x35,0xa4,0x8e,0x66,0xf5,0x60,0x72,0xd6,0x0a,0xbf, - 0xdb,0x6e,0x36,0x9e,0xed,0x3c,0x0b,0x71,0xd2,0x1e,0x3e,0xdf,0x69,0xd0,0x53,0x4e, - 0xc9,0xdf,0x84,0x38,0x70,0x0f,0x9f,0x85,0x77,0x09,0xc3,0xd8,0xbd,0x22,0x1d,0x04, - 0x49,0x6a,0x5d,0x53,0xe9,0x59,0xe3,0xdb,0x66,0x53,0x2a,0xed,0x3c,0x6b,0x4a,0x9d, - 0xed,0xe6,0xaa,0x4a,0x41,0xf4,0xb6,0x3b,0x9d,0x8e,0x6f,0xb4,0xc9,0xe7,0x8d,0x67, - 0xdf,0xac,0x6a,0xf2,0xdb,0x8a,0xda,0xbf,0x12,0x1f,0x2e,0x1a,0x6e,0x6a,0xd5,0x6d, - 0xa0,0x9d,0x23,0x75,0x55,0xbb,0xad,0x60,0x7f,0x37,0x09,0x7e,0xdf,0x95,0xba,0x3b, - 0x4f,0x1a,0xdb,0xcb,0x5f,0xfa,0x6d,0x75,0xb3,0xa8,0xfc,0x5f,0x6f,0x7e,0x58,0x5b, - 0xd3,0x6b,0xf6,0xfb,0x69,0xf7,0x5f,0xfd,0xc1,0xe7,0xb4,0xf5,0xea,0xb7,0xad,0xdf, - 0x7e,0x29,0x13,0xe7,0xdb,0xe7,0xdf,0x35,0x9e,0x6f,0x7f,0xfb,0xc0,0x9a,0x3f,0x64, - 0x13,0x84,0x2d,0xc0,0xac,0xd2,0xda,0xe8,0x4d,0xbf,0x63,0xb6,0x3d,0x4c,0xf7,0xfe, - 0x95,0x91,0x7c,0xf1,0x21,0x9b,0x5c,0x9d,0x10,0x33,0x59,0x46,0xe0,0xe9,0x93,0x9d, - 0xf5,0x03,0x02,0x08,0x04,0x4f,0x9f,0x3c,0xf9,0xf5,0xe7,0x7f,0x05,0xd1,0x9b,0x31, - 0x29,0x9d,0x3f,0xc0,0xd2,0x4e,0x20,0x50,0x7a,0xe3,0x39,0xda,0x5e,0x8f,0x84,0x85, - 0xa0,0xed,0xfb,0xb5,0xd7,0x11,0xe0,0x6d,0x86,0x1b,0x58,0x03,0xda,0xe8,0xe6,0x1e, - 0xdd,0xd6,0xa2,0xfd,0x96,0x66,0xd7,0xff,0xca,0xba,0xa8,0x67,0x06,0xd4,0x37,0x8d, - 0x27,0xdf,0xac,0x25,0x98,0x57,0xcd,0x62,0xeb,0xd5,0x5f,0xd7,0x2c,0x9c,0x7c,0x5c, - 0x9d,0x77,0x07,0xf8,0x62,0xfd,0xca,0x8a,0x7a,0x3a,0x92,0x9f,0x2f,0xd5,0xfb,0xf6, - 0xf9,0xb7,0x6b,0x3f,0xd3,0xab,0xb7,0x4f,0x96,0x62,0xff,0x12,0xf2,0x7c,0xce,0xa8, - 0xa2,0x78,0xf5,0x33,0xd2,0xcb,0x7b,0x9f,0xb8,0xd3,0x6c,0x80,0x32,0xeb,0x47,0xbf, - 0xd6,0xf5,0xc7,0xa4,0x57,0xbf,0x8a,0xc4,0x1b,0x47,0xce,0x49,0x7a,0xd9,0xd9,0xed, - 0xdc,0xc6,0xbc,0x58,0x13,0xf0,0xc2,0x15,0xec,0xc4,0xe2,0x49,0xb6,0x3c,0x30,0xa4, - 0x1b,0xd1,0x0a,0x37,0xed,0x9f,0x22,0x03,0x3a,0xb6,0x56,0x20,0x9f,0x90,0xa6,0xf8, - 0x05,0x32,0x01,0x70,0xa2,0x77,0xfc,0x34,0x9a,0x21,0x0b,0x5b,0x5d,0x0a,0x7d,0x74, - 0x52,0xde,0xe0,0x18,0xed,0x6f,0xd7,0xb1,0x69,0x22,0x85,0xef,0x89,0xf3,0xea,0xfb, - 0x10,0x7c,0xaa,0x2e,0x04,0xcd,0xca,0x74,0x7b,0xd8,0x3f,0x82,0xbb,0x2b,0xf3,0xfa, - 0x09,0xaf,0x5e,0x1b,0x9e,0x01,0xbc,0x47,0x94,0x1f,0xb0,0x1d,0xf0,0x68,0x12,0x60, - 0xfe,0x14,0x1b,0x82,0xef,0x7f,0x57,0x12,0xd9,0xb4,0xfd,0x1f,0x95,0x5a,0x36,0x6d, - 0xef,0xc3,0x12,0xe1,0x6e,0xfe,0xc5,0x16,0x51,0x3f,0xf6,0xd9,0x0d,0xaa,0x2e,0xf9, - 0xae,0x0f,0xe4,0x84,0x4c,0x92,0xca,0x1e,0x94,0xb1,0x0b,0x72,0x5c,0x2c,0xf9,0x3e, - 0x8a,0x48,0x0e,0xcf,0x06,0x85,0x15,0xf8,0x34,0x3b,0xa7,0xbc,0xcd,0x8b,0x6c,0x30, - 0xe8,0x4f,0xda,0xae,0xbb,0x22,0x00,0x60,0xc7,0x14,0xec,0xa4,0xf2,0x21,0xce,0x91, - 0x37,0x56,0x7a,0x47,0x06,0x92,0x71,0x2c,0xd0,0xfa,0xd6,0x13,0x92,0xef,0x80,0xa9, - 0xef,0xba,0x5d,0x9a,0xd1,0x4e,0x8e,0x68,0xd3,0xeb,0xe6,0x17,0x6d,0x78,0x04,0x74, - 0x89,0xed,0x7a,0x63,0x92,0x55,0xb6,0x12,0xa4,0xf8,0x56,0x7e,0xf9,0x0b,0xfd,0x2d, - 0x62,0xcd,0xab,0xb5,0xb4,0x0b,0x80,0x48,0xea,0x7b,0xb6,0xc1,0xb7,0x30,0xbe,0xe4, - 0xc4,0x39,0xce,0xbd,0x18,0x19,0x92,0x53,0xb8,0x3c,0x30,0x31,0x9f,0x37,0x37,0xf9, - 0x57,0xfd,0x58,0x73,0xf8,0xf8,0x8d,0xa2,0xa7,0xea,0x84,0x40,0x69,0xdf,0x14,0xee, - 0x09,0x46,0x14,0x25,0x3d,0xa0,0xa3,0x36,0xd9,0x56,0x9e,0xb2,0x3d,0x62,0x5c,0x35, - 0x82,0x24,0xfb,0xe4,0x26,0xf6,0x87,0x91,0x64,0xe4,0x67,0xb1,0x3f,0x96,0x24,0xe3, - 0x74,0xca,0xfb,0x5b,0x6a,0x61,0xa3,0x26,0x88,0xbf,0xa0,0xb3,0xc9,0x80,0x8e,0x72, - 0xb2,0x7c,0xf4,0x78,0x26,0x7d,0x1c,0x74,0xcd,0x48,0xe8,0x0e,0xcc,0xb0,0x86,0x1a, - 0x89,0xad,0x1d,0xd7,0x87,0x3b,0x59,0x1e,0xab,0x34,0xba,0x8c,0x1b,0xb0,0x8a,0x78, - 0x30,0xc6,0x85,0x78,0x41,0xd0,0x84,0xc7,0x0b,0x53,0xfb,0xda,0xb8,0x64,0xc5,0xaf, - 0x74,0x5c,0x3c,0xe7,0xdc,0xf2,0xe8,0x36,0x76,0xa6,0x12,0xc0,0xa7,0x34,0x2a,0x0f, - 0x6b,0xd7,0x47,0x6d,0xa9,0x51,0x1e,0x7d,0x77,0x0f,0xb6,0x72,0x54,0x27,0x21,0x0c, - 0xc5,0xe5,0x29,0x7f,0xc9,0xf8,0x71,0x62,0xed,0x1e,0x37,0xd6,0x19,0x3e,0x72,0x6b, - 0x4b,0x7e,0xd0,0x65,0x5c,0xe7,0x7f,0xa5,0xa2,0xef,0x3e,0xdd,0x94,0x5c,0x3e,0xa3, - 0xf9,0xdd,0x1e,0xbe,0xc0,0x02,0x5d,0xf7,0xa7,0xfe,0xa1,0x8c,0xdd,0xe3,0xae,0x3e, - 0xb0,0x29,0x8e,0x7c,0x8a,0x4d,0x78,0xb9,0x39,0x98,0x27,0x4a,0x73,0xab,0xad,0x1f, - 0x05,0xf4,0x97,0x1a,0x40,0x2a,0x98,0xb5,0x36,0x90,0xbe,0xfb,0xe8,0x2f,0xb7,0x5b, - 0x7c,0xa4,0xa0,0x94,0x56,0x25,0xde,0xdd,0xae,0x22,0x77,0xa5,0xf6,0x06,0xb4,0x51, - 0x6e,0xe5,0xc5,0x63,0x02,0x2e,0x7e,0xc0,0xa7,0xf6,0x17,0x23,0x6e,0xda,0x8a,0xab, - 0x31,0xf4,0xe7,0xf8,0x4f,0x63,0x28,0xf3,0xf8,0x83,0xad,0xc1,0x06,0x85,0x0c,0x44, - 0x2c,0xbf,0x78,0x44,0x8a,0x70,0x72,0x19,0x9d,0xec,0x24,0x4f,0x92,0xa7,0x15,0x16, - 0x87,0x58,0x24,0x84,0x23,0x86,0xb5,0xfe,0x6a,0x93,0xc3,0x3e,0x8d,0xe9,0x91,0x2a, - 0x9d,0x66,0x13,0x2d,0x5b,0x61,0x03,0xd9,0x7f,0x81,0x82,0x6a,0x33,0xce,0x48,0x50, - 0x13,0x15,0x51,0xa7,0x44,0x73,0x4f,0x9b,0x44,0x6a,0xfb,0x89,0xbd,0xa1,0xe9,0x06, - 0x4b,0xb7,0x5e,0xc1,0x86,0x85,0xaf,0x13,0xb6,0x87,0x58,0x2c,0x74,0x82,0xc9,0x9b, - 0xb9,0xcf,0x3d,0x46,0xd8,0x63,0x99,0xea,0xf4,0xfd,0xc3,0x78,0x6e,0x5e,0xd2,0xd1, - 0xb0,0x3d,0xfe,0xdc,0xed,0x23,0x0c,0xdf,0xf5,0x13,0x9e,0xc6,0xec,0x51,0xf1,0x43, - 0x06,0x27,0x1f,0xd8,0x46,0x1a,0xc3,0x84,0xfc,0x74,0x3a,0xa6,0x63,0xe3,0x31,0xec, - 0x03,0xfc,0x6e,0x21,0x47,0x7a,0x3c,0xda,0xa2,0x15,0x7c,0x97,0x3b,0xee,0x89,0x5f, - 0x6b,0x5f,0x8b,0x45,0xb6,0x4b,0xa7,0x78,0x57,0xa7,0x71,0x3a,0x98,0xcb,0x30,0x65, - 0xc6,0xaf,0xb0,0x49,0xf7,0x93,0x67,0xb7,0xff,0x76,0x2b,0x73,0x97,0xff,0xb9,0x6c, - 0x5b,0x78,0xef,0x3d,0x0b,0x58,0xec,0x2c,0xd2,0x84,0x9a,0x2b,0x39,0x94,0x72,0xd6, - 0x01,0x29,0x69,0x1f,0x66,0xb7,0xe1,0xea,0x98,0xc3,0xee,0xad,0x0a,0xe0,0x4c,0xe4, - 0x61,0xad,0xf5,0xfd,0x58,0xfa,0x16,0xe7,0xd2,0xa7,0xae,0x8d,0xd8,0x93,0xd6,0xd3, - 0x8a,0x61,0x81,0xac,0xa8,0x72,0x52,0x08,0x80,0xa7,0x55,0x83,0xa2,0xaa,0x12,0x7a, - 0xbd,0xda,0xc9,0x51,0xc5,0xc7,0x8a,0x03,0x70,0xf5,0x69,0xd6,0x69,0x7d,0x6c,0x2c, - 0xd8,0xb1,0xd9,0xc7,0x46,0x2c,0x2e,0x8b,0xa8,0x44,0x5c,0x1d,0x1b,0xf9,0x81,0xd1, - 0x9b,0xd7,0x43,0x2f,0x45,0xba,0xa8,0xa0,0x7b,0x39,0xd8,0xc5,0x83,0xba,0xe0,0x01, - 0x97,0x12,0x36,0x1e,0x74,0x2b,0x61,0xe3,0xde,0x6b,0x09,0x28,0x54,0x7d,0x31,0xa1, - 0x7a,0x14,0xf8,0x9d,0x38,0x19,0x4f,0xde,0x5d,0xcd,0xca,0xb6,0xb4,0x70,0xd4,0xd7, - 0x1d,0x6c,0x65,0xb7,0x7d,0x70,0x9f,0x21,0x6d,0xd4,0xc7,0x3d,0xda,0xca,0xbe,0xdb, - 0x3f,0x08,0x57,0x7a,0x53,0xd8,0xdc,0x9c,0x36,0x70,0x2a,0x07,0xf4,0x50,0xb1,0x4e, - 0x2f,0x9e,0x81,0x2c,0x17,0xa0,0x2e,0xd3,0x12,0xe3,0x6b,0xff,0x58,0xde,0x84,0x89, - 0xa8,0xbe,0x22,0xa1,0x3e,0x30,0xf6,0xc6,0x57,0x83,0x1e,0xc4,0xd1,0x69,0x46,0x5d, - 0x6d,0xaf,0x29,0xd6,0x03,0x78,0x6c,0xe1,0x9b,0x9f,0x61,0xec,0x1b,0xfa,0x9f,0x51, - 0x04,0xa8,0x62,0xe3,0xe5,0x5d,0x6b,0xea,0x38,0xa3,0xaa,0x15,0x69,0xaf,0x9b,0xae, - 0x76,0x80,0x94,0xbd,0x9f,0x9c,0xf5,0x47,0xfd,0x1c,0xe6,0x7a,0x96,0x1f,0xea,0x2d, - 0x24,0x1b,0x20,0x4e,0x1a,0x2c,0x4e,0x0c,0x52,0xe0,0x11,0x6a,0x31,0xec,0xc8,0xd2, - 0x72,0x60,0x1e,0xcd,0x72,0x62,0x77,0x01,0xb8,0xb6,0x25,0x1b,0x07,0xf6,0x88,0x68, - 0x03,0xa3,0x3c,0x9a,0x68,0x33,0xfb,0xec,0x2f,0xdb,0xbb,0x0b,0x2e,0x2b,0x50,0x44, - 0xe6,0x9b,0xa7,0x31,0x9d,0x1a,0xd0,0x7a,0x79,0xaa,0xe5,0x77,0x4b,0x05,0xf3,0xa0, - 0x37,0x26,0x4a,0x1a,0x31,0x5f,0xaa,0x4d,0x54,0x33,0xfd,0x89,0xa6,0x0a,0x6c,0x00, - 0x88,0xc4,0x73,0x79,0xa9,0x70,0xbf,0x31,0x89,0xad,0x4b,0x82,0xff,0x40,0x98,0x82, - 0xdd,0xfa,0x8f,0x47,0xf3,0x9d,0xbb,0xad,0xf3,0x24,0xbc,0x0d,0xd5,0x43,0xd6,0x9d, - 0x74,0x6c,0x16,0xcf,0x2b,0xd1,0x08,0x86,0xa4,0xbf,0x0b,0x4e,0x32,0x6c,0xcc,0xfa, - 0xbd,0xe0,0xb7,0x83,0x1f,0xeb,0xa4,0xde,0x00,0x32,0xdc,0x2e,0x85,0x21,0x58,0x2c, - 0xb6,0x0e,0x3f,0x4e,0x3f,0x8e,0x8e,0x78,0x02,0xa3,0xd9,0x78,0x3d,0xa4,0xed,0xfa, - 0xf6,0x33,0x01,0x24,0x1f,0x22,0x77,0x63,0x47,0xe3,0x00,0x67,0xd8,0xc1,0x09,0x8d, - 0xa3,0xcb,0x9c,0x0d,0x09,0x6d,0x77,0x39,0xdd,0x5e,0x5a,0x61,0x85,0x1c,0xa4,0x5a, - 0xc9,0x29,0xe8,0x40,0xd2,0x2b,0x56,0x7f,0xab,0x00,0x41,0x66,0x34,0x80,0xa5,0x21, - 0x4a,0x89,0xb1,0x61,0x85,0x55,0x25,0x62,0x02,0xd4,0x42,0x36,0x9e,0xd4,0x1d,0xdd, - 0x75,0x8c,0x04,0xb5,0x80,0xc4,0xd0,0x03,0x28,0x36,0xd2,0xd5,0x23,0xbd,0x30,0xe9, - 0x95,0x8e,0x89,0x0a,0x79,0xc3,0x4b,0x0d,0x23,0x74,0x24,0xef,0xcd,0xac,0x07,0x1f, - 0xbd,0x7c,0x6e,0xf8,0xf2,0x64,0x3a,0x9e,0x8d,0x71,0xb4,0x8a,0x55,0xe1,0xdd,0xcd, - 0x48,0x6d,0xf2,0x68,0xe2,0x91,0x18,0xda,0x4b,0x9c,0xc0,0x3d,0x6d,0x07,0x13,0xeb, - 0x5c,0xd7,0x82,0xec,0x44,0x40,0x4b,0x8b,0x1f,0x75,0xc2,0xaf,0xf9,0x5f,0xd8,0x0a, - 0x23,0x88,0x8a,0x8a,0x3d,0x21,0x63,0xe7,0x57,0xa9,0x7c,0x54,0xdc,0x90,0x8e,0x2b, - 0x2a,0xb1,0xc8,0xe6,0x1d,0x00,0x30,0x42,0x14,0x37,0xa5,0xfe,0xf6,0xdd,0xef,0xc1, - 0x56,0xc0,0xa8,0xa9,0x16,0x3f,0x09,0xf7,0xe4,0x09,0x27,0xb0,0x98,0x71,0x9e,0x96, - 0x3f,0xae,0x01,0x5f,0x2f,0x91,0xb0,0x08,0x8c,0x4b,0xa3,0x40,0xfd,0x54,0x00,0x19, - 0x6d,0xbe,0x57,0x21,0xe0,0x09,0x16,0x30,0xfa,0x0a,0xc4,0x35,0x71,0x65,0x21,0x73, - 0xc8,0x46,0x0e,0x0f,0x55,0xeb,0xb2,0xa4,0x84,0x49,0xa6,0x13,0x91,0xb2,0xef,0xd5, - 0x9e,0xac,0x0b,0x2c,0x35,0x3d,0x8d,0x63,0x02,0x34,0xb9,0xd3,0x0e,0xfb,0x20,0x5b, - 0x3a,0x57,0x22,0xeb,0x84,0x58,0xb4,0x27,0x59,0x2f,0x28,0xd1,0x3c,0x9a,0x4e,0x3a, - 0xd3,0x49,0x03,0xc6,0xe7,0xf5,0x40,0x0e,0xb2,0xa7,0xa7,0x56,0x3e,0xd2,0x93,0x68, - 0xa2,0x34,0x53,0x4f,0x30,0x17,0xb3,0x62,0x07,0x8e,0xa5,0xd5,0xec,0x96,0x69,0x03, - 0x7b,0xf5,0x09,0xe2,0x89,0x84,0x09,0xd2,0x08,0x3a,0x4c,0xcb,0xa5,0x50,0x05,0xc3, - 0x84,0x3b,0x04,0x9f,0xc1,0x2d,0x16,0x1e,0xd3,0x8c,0x19,0xb2,0x37,0xd7,0xc3,0xc4, - 0x2b,0xd5,0x09,0xe1,0xbe,0xb7,0xe5,0x4c,0x04,0x6d,0xd5,0xee,0x44,0x1c,0x91,0x25, - 0x9e,0x0b,0xc5,0x60,0x36,0x1f,0x26,0x95,0x34,0xb2,0x7e,0x50,0x5d,0x28,0x5a,0xf1, - 0xdd,0x89,0x58,0x27,0xeb,0x40,0x38,0x74,0x37,0x0c,0xee,0x44,0xf5,0xd3,0x4b,0x18, - 0x0a,0xac,0xd7,0x08,0xe4,0x93,0x44,0x0a,0x03,0x9e,0x9e,0x3d,0x08,0x9a,0xea,0xd5, - 0xa7,0x0d,0xcf,0x6f,0x93,0x89,0x46,0x6f,0x31,0x03,0x8f,0x22,0x9b,0xa5,0x0a,0x8a, - 0x9e,0xb3,0xa9,0x07,0xcb,0x26,0x33,0x81,0xe8,0x39,0x96,0x2f,0x42,0x62,0x40,0xd2, - 0x5b,0x98,0x50,0x9a,0x1a,0x4a,0x6f,0xef,0x74,0xf0,0x96,0xd3,0xb1,0x43,0x46,0xbb, - 0x8b,0xed,0x1d,0x62,0x5a,0xb8,0x22,0xd3,0x42,0x3d,0x69,0x30,0x1b,0x16,0xed,0x65, - 0x43,0x3a,0xc3,0xf7,0xdb,0xd3,0x64,0x69,0x2f,0x1b,0xba,0xcd,0x49,0x4e,0x42,0x89, - 0x0f,0xf2,0xf6,0x3e,0xd1,0x96,0xc4,0xc5,0xbd,0xcc,0x07,0xaf,0x3d,0x3f,0x53,0x16, - 0x36,0x2c,0x85,0xea,0xfa,0x52,0x10,0x60,0x33,0x77,0x2a,0x9a,0x4c,0x9c,0xd0,0x6a, - 0xec,0x98,0xb2,0x14,0x32,0xab,0xb7,0x64,0xc5,0x63,0x25,0x8b,0x47,0x5b,0xff,0x8c, - 0xc0,0xd6,0x48,0xc8,0x14,0xee,0xf2,0x51,0xd9,0xcb,0x57,0x0b,0x1d,0x9a,0x5f,0x2d, - 0x30,0x42,0xbe,0x5a,0xf0,0x0c,0xfa,0x6a,0x31,0xbb,0xfd,0x6a,0x01,0x1c,0x3f,0x9a, - 0x21,0x61,0x5e,0xd0,0xbb,0x9a,0x0e,0xc2,0xc8,0xb3,0x10,0x8e,0x9f,0x97,0x44,0xe4, - 0x3b,0x5d,0x5f,0x85,0xaa,0xc0,0xdb,0x10,0xd6,0xf1,0x74,0x97,0x87,0x09,0xe7,0x94, - 0x9c,0xaa,0x84,0xce,0xbe,0x86,0x97,0xb9,0x92,0xf2,0x11,0xab,0x98,0x99,0xfd,0x9e, - 0x9e,0x46,0x94,0x27,0x90,0x2f,0x75,0x4f,0xa8,0xab,0x61,0x69,0x35,0x22,0x09,0xa5, - 0xda,0xc2,0xc1,0xb4,0x99,0x4d,0xa7,0xfe,0x4d,0xaa,0xf7,0x83,0x8c,0x46,0x30,0x50, - 0x0c,0xba,0x81,0xbb,0xfe,0x05,0x34,0xf3,0x48,0x43,0xbb,0x1d,0x3b,0x77,0xb2,0xd0, - 0xb0,0xcb,0xe1,0x36,0x37,0xfd,0x4d,0x9a,0x9a,0x48,0xdc,0xd7,0x20,0x11,0x69,0x3c, - 0xa6,0x9f,0xae,0xdc,0x94,0x36,0xea,0x4d,0xd3,0xe6,0x4e,0x1c,0xd4,0x59,0xd0,0xcc, - 0x03,0x12,0xc5,0x26,0x2a,0x43,0x8c,0xea,0xbf,0xed,0xab,0xc3,0xf7,0xdc,0x62,0xb5, - 0xda,0x6b,0x1e,0xf6,0x46,0xae,0xb3,0xbc,0x35,0x68,0x49,0x81,0x5a,0x58,0x60,0x60, - 0xe1,0xfb,0xac,0x4c,0x29,0x60,0xde,0x28,0x4a,0xd4,0x6e,0xfd,0x7f,0x75,0xeb,0xff, - 0x3a,0x9a,0x3f,0xb9,0x53,0xcf,0xaf,0xda,0x3b,0x0f,0x63,0x2b,0x21,0xf6,0x42,0xf7, - 0x52,0x8c,0x8d,0x32,0x89,0x60,0x4f,0xea,0xb4,0x3f,0xc3,0x23,0x78,0x97,0x51,0x10, - 0x07,0x10,0x10,0x83,0x88,0x6f,0x22,0xe1,0x03,0x5c,0xf4,0x57,0x02,0x56,0x59,0xf9, - 0x24,0x35,0x45,0xc4,0x55,0x6a,0x72,0xc2,0x3e,0x7c,0xd3,0x13,0xb7,0x70,0xfb,0xc4, - 0xf7,0x22,0x5a,0xca,0x4e,0xd7,0xfb,0x46,0xec,0xc0,0x81,0x07,0xae,0xdb,0x98,0x5c, - 0xe6,0x62,0xe1,0x01,0x51,0x0a,0x89,0x18,0x75,0x48,0x69,0x97,0xdc,0x10,0xce,0x45, - 0x40,0x10,0x4d,0x4c,0x62,0x37,0x41,0xc6,0x5f,0xde,0x9c,0x10,0xf0,0xbc,0xa5,0x95, - 0x31,0x92,0xaf,0x30,0xce,0x42,0x64,0xd2,0x68,0x4d,0xc7,0xc7,0x8f,0x75,0xe9,0x42, - 0x46,0x9a,0xd9,0x64,0xa6,0x9e,0x7d,0xd4,0x43,0x07,0xdc,0xf2,0x93,0xf4,0x86,0x28, - 0x0a,0xf4,0x2e,0x0e,0xa8,0x50,0xa0,0xe4,0x88,0x8f,0x5d,0x84,0x15,0xee,0xf8,0xc8, - 0x33,0xcd,0x99,0x04,0xc2,0x51,0x30,0xbc,0x74,0xc2,0x7d,0x15,0xfc,0x80,0x90,0xbe, - 0x28,0xcb,0x44,0xf3,0x9a,0x07,0x1f,0x43,0x51,0x84,0x8a,0xab,0x8f,0x47,0x1f,0x43, - 0xf8,0x84,0x71,0xfc,0x03,0xf1,0xd0,0x27,0x4a,0x3e,0x69,0x06,0xb9,0xb8,0x4e,0x01, - 0x74,0x14,0x80,0x5b,0xa1,0x9c,0x89,0x8c,0x3b,0xf0,0x1c,0xa1,0x38,0x29,0xbb,0x22, - 0x44,0x63,0x92,0x09,0x02,0x33,0x60,0x09,0x61,0x25,0x5f,0xa0,0x3e,0x9b,0xc4,0x5b, - 0x93,0x75,0x2d,0x53,0x76,0x3b,0x18,0xd4,0x8d,0x47,0xc1,0x62,0xf3,0x07,0xce,0x54, - 0xf2,0xe1,0xa4,0xca,0xa8,0x35,0x23,0x6d,0xd5,0x46,0x52,0xfd,0xf3,0x52,0x04,0x21, - 0xf8,0x27,0x94,0x28,0x45,0x72,0xd3,0x27,0xa0,0xa7,0x7c,0x86,0xcb,0x4d,0xe3,0x91, - 0xf7,0x29,0xe2,0x04,0x49,0xbc,0x17,0x36,0x42,0x17,0x01,0xeb,0x2e,0xcf,0xf7,0x8c, - 0xe7,0xaf,0x23,0xb7,0x76,0x1d,0x71,0xdc,0xe2,0xdd,0x1a,0x37,0x73,0x46,0x73,0xc9, - 0xa0,0x0c,0xab,0x5f,0xf6,0xc7,0xb6,0x6e,0xce,0xba,0x35,0x3b,0x78,0x51,0xcb,0x4b, - 0xbf,0xf9,0xe0,0x96,0x5d,0xd1,0xb1,0x67,0x57,0xd3,0xba,0xda,0x22,0xf2,0x05,0xb0, - 0x78,0xad,0xbf,0xad,0x46,0x20,0x9b,0x25,0x10,0x44,0xfa,0x11,0xde,0x55,0x71,0x19, - 0x02,0x1b,0x74,0x2a,0x2f,0x7b,0xf4,0x32,0x91,0xfa,0x67,0xd6,0xb3,0x95,0x37,0x19, - 0x7c,0x27,0x57,0x8f,0x45,0xa8,0x77,0xa3,0x02,0x6f,0xd4,0xc2,0xc7,0xff,0x56,0x57, - 0x57,0xda,0xc5,0x95,0x7e,0xae,0xec,0x28,0xe5,0x31,0x6d,0xe0,0x55,0xb8,0x1e,0x0a, - 0xf2,0xf1,0x78,0xb4,0xce,0xff,0x90,0x8a,0x98,0x22,0xdc,0x18,0xc9,0xd3,0xec,0x65, - 0xd2,0x75,0xcc,0xac,0xe4,0x22,0x2c,0x2a,0x57,0x54,0x57,0x56,0xf9,0x05,0x8c,0xe5, - 0x02,0xdd,0x33,0x19,0x30,0x4c,0x2b,0xe0,0xed,0xf5,0xa6,0xb8,0xf9,0x21,0x05,0x3a, - 0x9b,0x69,0x34,0x82,0x52,0x2f,0xe4,0x55,0x9d,0x40,0x7d,0x20,0xbe,0xab,0xcc,0x07, - 0x07,0x58,0x01,0xee,0xd9,0x87,0x85,0x8d,0x40,0x7d,0x58,0x55,0xb5,0xaf,0xac,0xcd, - 0x34,0xdd,0xeb,0xf7,0x8c,0xf7,0x3c,0x8e,0xac,0xd2,0x85,0x37,0x2f,0x95,0x0c,0xb4, - 0x37,0x3c,0xd7,0x56,0xd5,0x78,0x52,0xab,0x18,0x33,0xa4,0xf2,0x94,0x5e,0x17,0xd7, - 0x56,0xe8,0xf6,0xc7,0xf4,0xbd,0x84,0x00,0xed,0xf9,0x1f,0xa3,0xfa,0x59,0x9f,0x39, - 0x5f,0x5e,0xd1,0xd7,0xf7,0xba,0x99,0xc2,0x7e,0xae,0xb2,0x87,0xcb,0x9c,0xca,0xd3, - 0x54,0xf9,0x15,0x74,0x4a,0xb2,0x82,0x4d,0x32,0x8f,0xfb,0xa3,0xe3,0x61,0xde,0xd1, - 0x3b,0x7b,0xd1,0x76,0xc2,0x8f,0xe4,0xe7,0x69,0x10,0x95,0xcb,0xc8,0xbd,0xf0,0xb8, - 0xf5,0xa4,0xe9,0xb4,0xd0,0x33,0x1e,0x1e,0x55,0x68,0x33,0xab,0x46,0x14,0x4a,0x32, - 0xf3,0x3b,0xa1,0x37,0xf5,0x55,0x27,0x54,0xe5,0x4a,0xc9,0x45,0x37,0x37,0x02,0xe5, - 0xe0,0x92,0x3e,0xd0,0x9b,0xbc,0xd5,0xce,0xc9,0xdc,0xb9,0x0a,0x9f,0x88,0x60,0x0c, - 0x20,0xb7,0x5d,0x2a,0x10,0xc9,0x10,0x0b,0x19,0x74,0x11,0xc4,0x4f,0xd9,0x17,0xe1, - 0x2a,0xcf,0x59,0xeb,0x3c,0x81,0xe8,0x47,0x89,0x2d,0x31,0x18,0x5a,0x51,0xd4,0xd7, - 0x11,0x3a,0x68,0x53,0x1c,0x81,0xa4,0xc0,0x25,0x99,0xf5,0x67,0x83,0x2c,0xa1,0xe9, - 0x6a,0x56,0x3b,0xc3,0x63,0x85,0x06,0x75,0xce,0xf5,0x38,0x2d,0xa7,0x2d,0x16,0xa6, - 0x71,0x75,0x22,0xe0,0xd6,0xa2,0x16,0xbc,0x3a,0x94,0x22,0x92,0x4f,0x7f,0x42,0x22, - 0x77,0xea,0x94,0x45,0x1c,0x05,0x6a,0x9e,0x94,0x55,0x97,0xe5,0xe4,0x3a,0x92,0xcc, - 0xbe,0x16,0x6c,0x13,0xb5,0x49,0xc5,0x9a,0x86,0x17,0xb3,0xd9,0xa4,0xb5,0xb5,0x45, - 0x9b,0x99,0x49,0x2d,0xdc,0x0a,0xdb,0x52,0xb9,0xd4,0x1c,0x95,0xd3,0xe4,0x0b,0x52, - 0x32,0xcb,0x3b,0x5a,0x5e,0x79,0x2b,0xcd,0x1c,0xa7,0x57,0xc0,0x0a,0xc3,0x12,0xa8, - 0xf0,0x6f,0xa1,0x82,0xaa,0xba,0x73,0x75,0x67,0xe9,0xb0,0x5e,0x07,0x2c,0x77,0x6d, - 0x0c,0xd1,0x17,0x8b,0x27,0xcd,0xb6,0x53,0x91,0xaf,0x0c,0xfb,0x21,0x83,0xa5,0xce, - 0xac,0xe4,0x9f,0xc2,0x1d,0x99,0xa3,0x7a,0xfd,0x5e,0x18,0xe4,0x98,0x63,0xd4,0x0a, - 0x43,0x13,0xf9,0x34,0x7d,0x46,0xf3,0x4e,0x47,0x02,0x41,0x38,0xcb,0x30,0xfa,0xac, - 0xcb,0x89,0xab,0x9c,0x26,0xc1,0x29,0x89,0x0f,0x19,0x82,0xf2,0xd4,0xd9,0xba,0xb9, - 0x52,0x49,0xce,0x0b,0xdc,0xf8,0xd2,0xf7,0x7b,0x31,0x8b,0xdb,0x88,0xaf,0x80,0x52, - 0x0d,0xf1,0x97,0x1c,0xc5,0x77,0xab,0xef,0x33,0x0b,0x4e,0xcd,0x0a,0x28,0x1b,0xfe, - 0x77,0x95,0x36,0x71,0xfa,0x09,0x88,0x03,0xda,0x0d,0xa4,0x97,0xb6,0xc2,0x97,0x1f, - 0xb8,0xc5,0x17,0x5b,0x5d,0xf2,0x0e,0x12,0xfe,0x63,0x7c,0x45,0x07,0xed,0xe6,0x1a, - 0x5d,0x30,0xd3,0x09,0x6a,0xae,0x58,0x27,0xcc,0x4a,0x54,0x9e,0xd9,0x7b,0xf3,0x1a, - 0xc1,0x91,0xd3,0x9d,0xa7,0xed,0xe2,0x9d,0x82,0x13,0x7f,0x0f,0x8b,0xd5,0xc3,0x50, - 0x22,0x6a,0xfd,0x48,0x4c,0xe5,0x06,0x81,0x19,0xe9,0x35,0xa7,0x8f,0xe0,0x18,0xc1, - 0x21,0x5f,0xea,0xa3,0xdc,0xef,0xf1,0xcb,0x8b,0xcf,0x05,0x3d,0x70,0xb9,0xfe,0xe8, - 0x6c,0x2c,0x85,0x4e,0x71,0xfb,0x09,0x6a,0x18,0x1a,0x09,0x60,0xff,0x2a,0x7e,0x71, - 0x7a,0x10,0xfd,0x76,0xb0,0x17,0x4b,0x41,0x76,0xf4,0x80,0x82,0x19,0xf8,0x96,0x16, - 0x98,0xf3,0x95,0x86,0xba,0x19,0x39,0x77,0x52,0x54,0xf6,0x24,0x2e,0x50,0x7b,0x8d, - 0x3c,0x90,0x4c,0x29,0x38,0xa4,0x51,0x0f,0xf7,0x1a,0xe1,0xcf,0x59,0x77,0xc2,0x18, - 0xbe,0xdf,0xff,0xb0,0xfb,0x6b,0xc0,0x2e,0x3c,0xe0,0x1f,0x63,0x00,0x73,0x68,0x68, - 0x96,0xd1,0x98,0xd4,0x29,0x22,0x51,0x52,0xb5,0xb7,0xbc,0x47,0xbc,0xc8,0x8c,0x07, - 0x47,0xb6,0xdb,0x49,0x64,0xbb,0x08,0x57,0x0b,0x0c,0x91,0xe8,0x5a,0xae,0x68,0xe6, - 0x1a,0xbe,0xe5,0x87,0x29,0xc9,0x1d,0x90,0x42,0x24,0x0f,0xeb,0xd3,0xfc,0xf9,0x53, - 0xf2,0x99,0x70,0x8b,0xdb,0x2c,0xd3,0x3a,0x89,0x66,0xe6,0x93,0x68,0xab,0x71,0x4a, - 0x95,0xa6,0x0d,0xb7,0xf9,0xdd,0xfc,0xd2,0xd6,0x44,0x94,0x35,0xf1,0x77,0x69,0xa4, - 0xe5,0x61,0x9e,0x0d,0xae,0xb3,0xdc,0xab,0x4f,0x3f,0x93,0x0c,0x95,0xf7,0xc4,0xed, - 0x89,0xd3,0xb4,0x64,0x05,0x11,0xeb,0xe4,0x98,0x6c,0x45,0x63,0xa2,0x19,0x37,0x3d, - 0x41,0x53,0x8e,0x14,0x4f,0x43,0xed,0x8c,0x2e,0x73,0xfd,0xc7,0x79,0xb0,0xbb,0xf7, - 0x26,0x40,0x46,0x3f,0xc7,0x18,0xc8,0x97,0x3f,0x25,0x98,0xf7,0x47,0xb3,0x6f,0xcd, - 0x17,0x75,0x7b,0x88,0xc3,0xcd,0x30,0x40,0xa5,0x51,0x20,0x09,0x58,0x89,0x82,0x08, - 0x36,0xdd,0x30,0x7b,0x76,0x8b,0x36,0xc8,0x48,0x72,0x7c,0x31,0x9e,0x54,0x54,0xb1, - 0x34,0x70,0xdc,0xee,0x4e,0xb2,0xee,0x4c,0xea,0xc3,0x6f,0xbb,0x6c,0xf3,0x11,0x6c, - 0x6d,0xfa,0x49,0xf7,0xfc,0xdd,0x69,0x77,0x68,0x1d,0xf5,0xe5,0xb2,0x45,0xe4,0x73, - 0x66,0x3a,0x65,0x4e,0xe0,0xeb,0x6d,0x6a,0x90,0xe5,0x39,0x18,0xa8,0xe7,0x24,0xf2, - 0x2e,0x28,0x83,0xb0,0x1c,0xb9,0x14,0x30,0x79,0x3e,0x66,0x53,0x43,0x75,0xae,0x40, - 0x73,0x74,0x9a,0x81,0xe0,0xf4,0x53,0xe4,0x07,0x11,0xfb,0x20,0x31,0xae,0xd5,0x8d, - 0xc3,0x92,0xd8,0xad,0x25,0xa0,0xd1,0xdc,0xfb,0x6c,0x6a,0xde,0xea,0xd0,0xe1,0x57, - 0xb6,0xc1,0xad,0x03,0x35,0xfc,0x3a,0xad,0x60,0x18,0x26,0x70,0xb1,0x92,0x04,0xe2, - 0x54,0x63,0xa9,0x52,0xbd,0xd7,0xef,0x9e,0x53,0xcd,0x57,0xb7,0x33,0x98,0x9a,0xeb, - 0x87,0x20,0x75,0x34,0xce,0x69,0x59,0x36,0xed,0x0c,0xc6,0x28,0xf5,0xc3,0xd5,0x70, - 0x62,0x5c,0xe6,0xe9,0xc7,0x53,0x46,0xae,0x21,0x5e,0x1d,0x0f,0xef,0x45,0x2d,0x90, - 0x4d,0x3a,0x1a,0xbf,0x4e,0xad,0x73,0x89,0x90,0x62,0x36,0x0f,0x83,0x4c,0x2e,0xc8, - 0xbb,0xf5,0xa4,0xb3,0xe9,0xc7,0xab,0x65,0xcb,0x64,0xd3,0x6e,0x9e,0x01,0x2f,0x3e, - 0x34,0x06,0xa8,0x0a,0xec,0x74,0xd8,0x8e,0x72,0x48,0xfb,0xfd,0x1c,0xc8,0x60,0x0d, - 0x0a,0xba,0xb3,0x19,0xf1,0x73,0x2a,0x2c,0x79,0xe5,0x82,0x10,0x0f,0xb9,0xb3,0xbb, - 0x3d,0x9e,0xa3,0x92,0x8c,0x31,0xdc,0xcb,0x6e,0xef,0x4a,0x45,0x73,0x29,0xfa,0x3b, - 0xae,0x55,0x54,0x94,0x0d,0xe6,0xac,0x9a,0xd2,0x3a,0x54,0xf8,0x7c,0x92,0x53,0x39, - 0xf4,0x2d,0x34,0xe6,0xe4,0x05,0x84,0x31,0xff,0xe9,0xfd,0xbe,0x57,0xe4,0xec,0xac, - 0x28,0xd3,0x23,0xe5,0x60,0xb9,0x14,0x4a,0xe0,0x34,0xd8,0x67,0x8a,0x3c,0x1c,0x75, - 0xa9,0x21,0x5e,0x36,0x1e,0x56,0xd4,0xcb,0x66,0x54,0x82,0x47,0xe5,0x84,0xb9,0x85, - 0x1a,0x17,0xa1,0x18,0xf5,0xc6,0x2d,0xb1,0x68,0xb8,0x54,0xeb,0xce,0xb6,0x06,0x84, - 0xa8,0xd6,0xb3,0x93,0x74,0xc4,0x54,0xe7,0x53,0x44,0x2a,0x7a,0x3a,0xb8,0xea,0x65, - 0x5c,0x95,0x24,0xc7,0x3e,0xb7,0xdb,0xd7,0xe9,0x99,0xfb,0xb5,0x65,0x7b,0x02,0xfe, - 0xc5,0xaf,0xfd,0x5c,0xfa,0x6d,0xd0,0xbf,0x2e,0x83,0xf0,0xeb,0x41,0x49,0x77,0x96, - 0x7b,0xf5,0xb4,0xbf,0x3d,0x54,0xb3,0x99,0x1c,0x46,0xc8,0xa4,0x76,0x96,0x02,0x49, - 0xae,0x4b,0x3a,0xab,0x2d,0x94,0xe4,0xa5,0x1a,0xd2,0x3b,0xaf,0xe0,0xbc,0xd7,0x54, - 0x31,0xfc,0xa1,0xba,0xb4,0x74,0xd4,0x0f,0xfd,0xbc,0xa2,0xbc,0xe2,0x53,0x76,0x21, - 0x6d,0x31,0x5a,0xf6,0x7c,0xec,0xa2,0xe5,0x57,0x54,0xae,0xab,0x45,0xe7,0xe6,0x61, - 0x31,0xa5,0x5e,0x1f,0x0f,0xcd,0x4f,0x9d,0xf5,0x3f,0x75,0x88,0x08,0x9a,0xc2,0xfb, - 0xb5,0xba,0x99,0x9f,0x0b,0xa3,0xc6,0xbc,0xab,0x42,0x4f,0x5d,0x53,0x3b,0x28,0x62, - 0x1c,0xc3,0x9d,0x16,0x06,0x88,0x45,0xd7,0xf5,0x87,0x5c,0x85,0xae,0xe6,0x1b,0x94, - 0xf5,0x75,0x3e,0x1e,0x2d,0x88,0x60,0x77,0x09,0x7b,0xc5,0x34,0xde,0x8e,0x3d,0x57, - 0xca,0x02,0x4e,0x15,0xe9,0x80,0x20,0x7a,0x39,0x14,0xf5,0x3d,0xa0,0xcf,0x69,0x6f, - 0x58,0xd7,0x37,0xe7,0x8b,0x34,0x49,0x27,0x31,0x18,0x94,0xae,0x55,0x1e,0x88,0x88, - 0x23,0x5f,0x39,0xdc,0x4b,0x57,0x9e,0x01,0xc6,0xdd,0x2c,0xcb,0xed,0x42,0xc5,0x6f, - 0x81,0x64,0x8c,0x47,0x9e,0x74,0xa1,0xbb,0x60,0xa9,0x3d,0x9e,0x75,0x25,0xf0,0x05, - 0xd0,0xc7,0x2f,0xd4,0x79,0xb2,0x97,0xcd,0xa6,0xb2,0xa4,0x8a,0xc5,0x2d,0x66,0x11, - 0xa8,0x98,0x5f,0xc4,0xb6,0x26,0xdb,0x74,0xc8,0x2c,0xbb,0x19,0x41,0x78,0xc3,0xbc, - 0x96,0x52,0x68,0xd5,0x85,0x92,0x20,0x41,0x37,0x94,0x16,0xc2,0x09,0x75,0xfd,0x69, - 0xa9,0x1f,0xdf,0xb1,0xc6,0x56,0xf4,0xb9,0x1e,0xaa,0x5a,0x5c,0x7b,0x6b,0x45,0xf1, - 0x60,0x4e,0xe2,0x7e,0x6f,0x71,0x92,0xcd,0xba,0xde,0x20,0x02,0x9b,0xe7,0x0d,0xb5, - 0x90,0x43,0x19,0xbe,0x90,0x5d,0xec,0x4c,0x94,0x60,0x6f,0x76,0xdf,0x56,0xd6,0x09, - 0xba,0x93,0x15,0xd5,0xc4,0x09,0xf8,0x8d,0xaa,0x1b,0x77,0xdf,0x6b,0xfd,0xf1,0xc4, - 0x6b,0x92,0x12,0x9c,0xaa,0x52,0xcc,0x10,0x06,0xe3,0x40,0x5a,0x54,0x3d,0x83,0xae, - 0xee,0x97,0x2b,0x4b,0x24,0x72,0x34,0x30,0xc5,0x5c,0xb6,0x2c,0x56,0xea,0xf1,0x3c, - 0x77,0x79,0xb4,0x56,0x0a,0x90,0x28,0x08,0x5e,0x5c,0xcd,0xc0,0xb9,0x2b,0x8b,0x04, - 0x51,0xde,0x1d,0xd2,0x70,0xce,0x03,0x85,0x64,0xba,0x5f,0x57,0xb5,0x57,0xf8,0xf5, - 0xd6,0xc7,0xa0,0x5e,0xb7,0xfa,0x13,0x8c,0x08,0xf5,0x71,0x1e,0x1e,0x6d,0x1c,0x59, - 0x11,0xfd,0x97,0x57,0xff,0x60,0x09,0x5d,0xaf,0xf1,0x37,0xa6,0xd4,0xc5,0x18,0xd9, - 0x18,0x50,0x92,0x14,0x68,0x12,0xe8,0x9b,0xeb,0xb9,0xac,0x15,0xd2,0xa3,0xa6,0x5e, - 0x17,0x15,0x69,0x90,0xe5,0x79,0x3d,0x00,0x89,0xc3,0xa4,0x99,0x84,0xcd,0xc5,0x77, - 0xcd,0xc5,0xf6,0xb7,0xcd,0xc5,0xce,0x37,0x4d,0x41,0x5d,0x9b,0xeb,0x8f,0x10,0xe5, - 0x3f,0x09,0x39,0x98,0xdc,0x08,0x8d,0x70,0x0a,0xa9,0x07,0x2f,0x88,0x2f,0x8e,0xa7, - 0x5c,0xfd,0xa2,0x0f,0xf0,0x9f,0x16,0xc6,0x53,0xdf,0xe2,0x6a,0x04,0xdf,0xd3,0x65, - 0x40,0xe0,0x85,0x0e,0xce,0xb0,0xd2,0x50,0xaf,0x78,0x04,0x81,0x68,0xb6,0x20,0x76, - 0x22,0x37,0xa9,0x17,0x70,0xad,0x0e,0x38,0xf2,0x5a,0xd7,0xd7,0x42,0xc3,0x50,0x86, - 0x6c,0x42,0xc7,0x60,0x87,0x22,0x10,0x03,0x93,0x13,0x98,0x1c,0x42,0x59,0xd5,0xde, - 0x41,0xb4,0x5d,0x87,0xaf,0x47,0x7c,0x76,0x09,0xc8,0x55,0x7e,0x52,0x81,0xe2,0x6f, - 0xfb,0xdf,0x4b,0x9f,0x7e,0x31,0x92,0x80,0x6f,0x11,0x05,0xdc,0xcf,0x40,0x52,0x0e, - 0xa8,0xad,0xd5,0x82,0xa6,0xd3,0x5a,0x59,0x2c,0xa3,0x58,0x38,0xfb,0xb3,0xab,0x9e, - 0xcd,0x1c,0x8f,0x6c,0x26,0xbd,0x9c,0x97,0x72,0xe5,0x1a,0x1a,0x94,0xc6,0x90,0xa5, - 0x1d,0x8e,0x2a,0x19,0x01,0x67,0x6c,0x0b,0xf3,0x3c,0x1d,0xa8,0xa0,0x25,0x4e,0xb2, - 0xdc,0xdd,0x01,0x86,0xae,0x53,0x27,0xd7,0x4a,0x93,0xe9,0x35,0x03,0x57,0xc1,0xab, - 0xb8,0xb2,0x4c,0x15,0x8a,0xa1,0x1e,0xcc,0xe9,0x1e,0xbe,0xb7,0x4d,0x32,0xf8,0x91, - 0x31,0x6c,0xf1,0xc9,0x78,0x56,0xb8,0x8e,0x80,0xac,0xa2,0x7f,0x06,0x11,0xd9,0x97, - 0xf7,0x15,0x0e,0x52,0xb1,0xb3,0x85,0x7d,0x48,0x36,0x82,0x6f,0xff,0x11,0x6e,0x5f, - 0x68,0xf6,0x0c,0x63,0x5b,0x2d,0x1e,0x28,0x0f,0xc6,0x0e,0x9a,0xd7,0x05,0x43,0x50, - 0xd7,0x84,0x67,0x5d,0x44,0x81,0x29,0x46,0xcd,0xd5,0xec,0xd3,0xe9,0xa7,0xd3,0x01, - 0x0f,0x17,0x7a,0x0e,0xf8,0x05,0x74,0x39,0x05,0x7d,0xa2,0x1b,0x48,0x90,0x44,0x9b, - 0x52,0xe5,0xa2,0x3b,0x4f,0xbb,0x3d,0x43,0xd0,0x6c,0x64,0xf5,0xec,0xdd,0x51,0x4e, - 0x8e,0xcc,0x79,0xa0,0xc9,0xc2,0x1a,0xda,0x0f,0x26,0xdf,0x86,0x50,0xc0,0x83,0x31, - 0xfe,0xf7,0xf6,0xce,0xf3,0x5b,0xf2,0x42,0x18,0x10,0xa3,0xcb,0x31,0xcf,0x91,0xb1, - 0xb2,0xd6,0x04,0x72,0x16,0x15,0x06,0xc2,0x75,0x20,0xe9,0x49,0x35,0x3a,0xac,0x07, - 0x24,0x68,0x0c,0x60,0x75,0xd5,0x74,0x1e,0xc1,0x32,0xbb,0x43,0x48,0x42,0xdb,0xcf, - 0x17,0x4f,0x76,0x16,0xe4,0x60,0xf1,0x2a,0x0f,0xf2,0x01,0xad,0xf6,0xf4,0xe0,0x36, - 0x74,0x03,0xdd,0x47,0x6f,0x7c,0xee,0x31,0x5e,0xce,0x24,0xe3,0x8b,0x20,0x27,0xb6, - 0x37,0x32,0x6b,0x01,0x86,0x62,0x30,0x6f,0xd6,0xb7,0x77,0x9a,0xf0,0x69,0x59,0xf4, - 0x14,0x09,0xaa,0xa4,0x83,0x81,0xe9,0x24,0x41,0x61,0x3d,0xc9,0x59,0x36,0x45,0x3c, - 0xe1,0x80,0x53,0x11,0x46,0xbb,0xe8,0x99,0xf3,0xd3,0x06,0x1f,0xf4,0x36,0xfa,0x46, - 0x9f,0x82,0x9e,0xfa,0x69,0x2f,0xe0,0xc4,0x40,0x13,0x9d,0x29,0x55,0x0c,0xab,0xdb, - 0x5e,0x46,0x93,0xce,0x10,0x05,0x8f,0xc4,0x86,0xf2,0xcc,0x0e,0x07,0xcd,0x3e,0xd0, - 0x6c,0xe9,0x3b,0x20,0xbc,0x53,0xa0,0x2a,0x1e,0x1e,0x1b,0xab,0x4b,0x43,0x3e,0xe0, - 0x42,0xba,0x4f,0xca,0xcb,0x00,0x64,0x57,0x8b,0x71,0x39,0x96,0xb8,0x11,0xb8,0xbe, - 0x8e,0x31,0x70,0x76,0xd6,0x3f,0x5d,0xea,0xcc,0x21,0xf1,0xe9,0x7e,0x83,0xe0,0xe4, - 0xbc,0xbf,0xa3,0x62,0xb4,0x47,0xff,0x05,0x9b,0x35,0x6c,0x50,0x2c,0x55,0x06,0x03, - 0x52,0xe0,0x81,0xf3,0x36,0xc6,0xa3,0x01,0xd0,0xda,0x45,0x4a,0x80,0x94,0x3a,0x52, - 0x02,0x68,0x2c,0x66,0x72,0x44,0x99,0xe7,0x5e,0x33,0xba,0x3d,0x77,0x49,0xfa,0x86, - 0xa5,0x29,0x49,0x77,0xa9,0x8a,0x7e,0xbb,0xc2,0x00,0xa7,0xa5,0x25,0xc5,0x0a,0x58, - 0x0c,0x6d,0xde,0xf0,0x37,0x96,0x20,0x89,0xc7,0xcd,0x2a,0x48,0xb4,0x65,0x9f,0xae, - 0x84,0x33,0xec,0x62,0x7a,0xc2,0x9d,0x29,0xbf,0x53,0xe1,0x09,0x13,0xf2,0xf9,0xd3, - 0xbb,0xa5,0x82,0xa6,0x51,0x53,0x5e,0x5e,0xd6,0x57,0xb8,0x1a,0xb1,0xa6,0xa4,0x27, - 0x55,0xa4,0x2c,0x3a,0x4e,0xd3,0xa5,0x51,0xbf,0x3e,0xa5,0x4d,0x1a,0xbd,0x0c,0x11, - 0x34,0x8d,0xe6,0x47,0xcb,0x75,0x07,0xa0,0xf4,0x27,0x04,0x11,0x96,0x43,0x33,0x57, - 0x50,0xbd,0x20,0x71,0xaf,0x98,0x6d,0x44,0xbe,0x3e,0xf9,0x0e,0x59,0x60,0xc1,0x99, - 0x92,0x70,0x48,0x07,0xfa,0xd3,0x3e,0xc1,0x13,0xce,0x89,0x93,0x01,0x14,0xd7,0xf5, - 0x08,0x7e,0xf2,0xb8,0x7e,0x80,0x04,0x42,0x67,0xb1,0xbd,0xb0,0x43,0x89,0x6d,0x4d, - 0x1a,0xac,0x88,0x4b,0x8c,0x45,0x0e,0x5e,0x02,0x68,0x48,0x83,0x68,0x11,0x9c,0xe0, - 0xf6,0x79,0x96,0x8b,0xb8,0xca,0x4e,0x83,0xb4,0xe6,0xf9,0x55,0xe6,0x18,0x74,0x51, - 0xed,0x9f,0x90,0xa0,0xc2,0xb4,0x1d,0x56,0xbd,0xd3,0x06,0x8f,0x40,0x5c,0x80,0x99, - 0x3a,0xab,0xec,0xee,0x0f,0x7b,0x81,0xcd,0xd0,0xe2,0xf6,0xd8,0x26,0x29,0xd9,0x41, - 0xba,0x0b,0x97,0x1a,0x12,0x6a,0x19,0xbf,0x4d,0xc9,0xd7,0x8d,0x59,0x56,0x94,0xd2, - 0x2d,0x5f,0xc6,0x94,0x60,0x72,0x62,0x07,0x0b,0x7a,0x2e,0x30,0x56,0xb8,0x2e,0x6b, - 0xb5,0x55,0xd1,0x1b,0xee,0x1b,0x6f,0x07,0x36,0xf2,0xcd,0xeb,0xf7,0x49,0x80,0x78, - 0x28,0x5d,0x39,0x48,0xbb,0x32,0xde,0x7b,0xb7,0x6d,0x65,0xd5,0xa4,0xe0,0x18,0x8d, - 0xaa,0x19,0x3f,0x0c,0x1a,0xed,0xee,0x8c,0xe6,0x19,0x7c,0x34,0xb9,0xaa,0x95,0x72, - 0xf5,0x51,0x8e,0x91,0xf1,0x76,0x5f,0xbd,0x5f,0x26,0xc1,0x39,0x75,0xf2,0x4d,0xf7, - 0x93,0x2c,0x96,0xf4,0x0d,0x4a,0x13,0x11,0xc9,0xa9,0xa8,0x02,0xc0,0x87,0x2b,0xf2, - 0xa5,0xc3,0x49,0x34,0x2f,0xb8,0x43,0x15,0xe4,0x63,0xae,0x35,0x69,0x7d,0x46,0x07, - 0xc1,0x00,0x08,0x06,0x44,0xe2,0x26,0x7d,0x69,0xa2,0xe3,0xb0,0x0c,0xe5,0xfc,0x33, - 0xc4,0x13,0xda,0xaf,0x2f,0x97,0x86,0xe4,0xa2,0xfa,0x1a,0x91,0x5c,0xf4,0xcd,0x2f, - 0x59,0xde,0xa9,0xff,0x00,0x05,0xb0,0xb7,0xdc,0xf8,0x35,0xce,0x79,0x7d,0x62,0x65, - 0x01,0x8a,0x2d,0xe5,0x9b,0x96,0x1a,0x24,0x1f,0x4d,0x54,0x70,0xe2,0x6f,0x67,0x0b, - 0x15,0x49,0xb5,0xdd,0x53,0xcc,0x2f,0x42,0x79,0x01,0x7a,0x2c,0x4e,0x68,0xfb,0x0a, - 0x48,0x6a,0xc4,0x06,0x3d,0x80,0x4c,0x78,0xd4,0x1f,0x76,0xf3,0x19,0x70,0xbb,0xe9, - 0xe3,0x92,0x24,0xc7,0x57,0x20,0x0d,0x29,0xdc,0x3e,0x4e,0x0b,0xb2,0xc4,0x3e,0x4e, - 0x02,0x69,0x7a,0xc5,0x7e,0xa8,0x40,0xc4,0x0b,0x3e,0x6e,0x15,0x8c,0x68,0xbe,0x6b, - 0x8e,0x74,0x4b,0xc9,0x74,0x30,0x29,0x9b,0x1c,0x82,0xfd,0xb1,0xe4,0x94,0x43,0x75, - 0x65,0x8e,0xb8,0x74,0xa5,0x72,0x4c,0x7b,0x92,0x70,0xc9,0x42,0xe7,0x2a,0xcf,0x7a, - 0xa8,0xce,0x91,0xf8,0x03,0x70,0x8c,0x52,0x3d,0x3b,0x82,0xf6,0x8a,0xc1,0x93,0x07, - 0x5b,0x18,0x7a,0xfd,0x71,0x8f,0x6a,0x48,0xbe,0xb4,0x2e,0xfa,0xa5,0xea,0xcf,0x54, - 0x4d,0xe9,0x7b,0x41,0x73,0x0b,0xfe,0x88,0x1d,0xc5,0xa5,0xfb,0x8d,0x62,0x79,0xc5, - 0x6a,0x9d,0x6b,0x3a,0xb9,0x03,0xa1,0x95,0x96,0x9a,0xe5,0x16,0x97,0x9d,0x5e,0x83, - 0x2d,0xc6,0x1d,0x2a,0xd2,0x1f,0xa1,0xa4,0xe4,0x73,0x24,0xa6,0x1c,0xb0,0x4a,0x95, - 0x65,0x4d,0x75,0x10,0x0b,0x24,0xc5,0x12,0xb1,0xba,0xd3,0xba,0x37,0xbc,0x28,0xe6, - 0x63,0xa5,0x7b,0x70,0x46,0x27,0xbe,0x01,0xa5,0x07,0x67,0x10,0x24,0x57,0xd5,0xbb, - 0x5d,0x6a,0x49,0x4f,0x0b,0xc6,0xd7,0x82,0x34,0x44,0xbd,0xca,0xca,0xba,0x16,0x8a, - 0xf5,0x8b,0xae,0x18,0x1a,0xe2,0x47,0x55,0x6b,0x72,0xd6,0x70,0xd2,0xed,0x09,0x67, - 0xa2,0xc3,0xdb,0x55,0xb8,0xcc,0x2a,0x70,0xb1,0x0b,0x0d,0xcb,0x03,0xb9,0xbb,0x59, - 0x91,0x06,0x2c,0x00,0x77,0x51,0xde,0xd7,0x51,0x20,0xd0,0x34,0x87,0xa4,0xf2,0xfa, - 0x73,0x2b,0x9b,0x69,0x4d,0xf7,0xc8,0x42,0x31,0xa0,0x96,0xdd,0x43,0x8f,0x19,0xf7, - 0x7a,0xc4,0x87,0x2f,0xb2,0xcd,0xac,0x9e,0x3f,0x0e,0x2c,0x17,0x9f,0xb7,0x0a,0xa8, - 0x0a,0xa5,0x9d,0xfa,0x93,0x27,0xcf,0x45,0x5c,0x28,0xa3,0xc5,0x0b,0xa0,0xae,0x7d, - 0xce,0x56,0xa4,0xe2,0x08,0xc6,0xad,0x66,0xcc,0x56,0x5d,0x23,0x56,0xd5,0x5d,0x95, - 0xbf,0x7a,0x36,0x01,0x6a,0x07,0xef,0x03,0x33,0x75,0x23,0x2c,0x39,0xe2,0xa8,0x28, - 0x27,0x75,0x46,0xec,0x97,0xd6,0xe5,0x83,0x1d,0xa5,0xa3,0x1e,0x74,0xbb,0x26,0x66, - 0x90,0x8e,0x62,0x30,0xee,0x7f,0xb1,0xee,0x15,0x77,0x74,0x5e,0xff,0x77,0xa0,0x09, - 0x34,0x33,0xa7,0xc2,0x28,0x4b,0xe5,0x1a,0x44,0xbd,0x3c,0x63,0x06,0x78,0xb0,0x17, - 0xc8,0x8b,0x95,0x9e,0xe6,0x24,0x4b,0x43,0x18,0xdc,0xb6,0x52,0x4a,0x3e,0x1a,0xb2, - 0x0a,0xe6,0xed,0xaf,0xef,0x71,0x72,0x85,0x3d,0x89,0x9c,0xe5,0xbb,0x96,0xf2,0x7e, - 0xcf,0xa0,0x52,0x03,0xbe,0x6a,0xae,0x46,0xb4,0x39,0xd3,0xea,0x45,0x82,0x8b,0x9b, - 0xea,0xd4,0x30,0x9f,0xf0,0xab,0x6a,0x25,0x1f,0xa6,0x94,0x6a,0x4c,0xf2,0x4b,0xbf, - 0x24,0xb8,0x42,0x5d,0x0c,0x5c,0xd0,0x5b,0x25,0xa8,0x2c,0xfe,0xcc,0x40,0x45,0xaf, - 0x8e,0xa6,0x97,0x0a,0x0b,0x63,0xd4,0xb2,0xca,0x27,0xc5,0x52,0xcb,0x96,0xf4,0x04, - 0xd2,0x5f,0x21,0x82,0x5d,0x0d,0x0b,0x49,0xf6,0x84,0x56,0x64,0xd8,0xd3,0x71,0xc1, - 0xbc,0x5c,0x0d,0x3d,0xab,0x7a,0x43,0xc9,0x07,0xb5,0xc1,0xa6,0x56,0x7c,0x2e,0xd6, - 0x9e,0x02,0x1f,0xc2,0x45,0xa4,0x97,0xe9,0x98,0x66,0xc7,0x70,0x79,0x5e,0x9f,0x4c, - 0xfb,0xbd,0xf3,0xcc,0x59,0x9c,0xf6,0x89,0x57,0x74,0x07,0xca,0xd3,0x24,0x7b,0x55, - 0xad,0x9c,0x46,0xc0,0xa9,0x48,0x89,0xca,0x0b,0x32,0x53,0x85,0x05,0xd1,0xbe,0x61, - 0x24,0xd3,0x5b,0xb2,0x5b,0x2e,0xd5,0x3c,0xe9,0x5e,0xf1,0xa9,0xae,0x94,0xcd,0xa5, - 0x4d,0x24,0x12,0x3f,0x64,0x31,0xc0,0x2d,0xac,0x1b,0x1d,0x2d,0x0d,0x52,0x70,0x9a, - 0x57,0xce,0x74,0x94,0x2d,0x69,0x12,0xbc,0x62,0x24,0x66,0x0f,0xb1,0xff,0xd1,0xeb, - 0x20,0x8a,0xf1,0x0d,0x0d,0xcc,0x40,0x33,0x09,0xeb,0x9b,0x69,0x17,0x46,0xfd,0x0b, - 0x70,0xee,0xd2,0x57,0x67,0x64,0xfd,0x38,0xb3,0xad,0x98,0x71,0xa4,0xc9,0xcd,0x92, - 0x0a,0xed,0xfb,0x77,0xbb,0x1f,0x7e,0xb0,0x8a,0x34,0x13,0x19,0x2a,0x1b,0xda,0x4d, - 0x75,0x45,0xd2,0x8f,0x53,0x38,0x87,0xa7,0xcf,0x84,0xa8,0x79,0x35,0x40,0x6c,0x82, - 0x75,0x3b,0x6d,0xd4,0x9d,0x2d,0x83,0x9b,0xad,0x04,0x77,0xb0,0x02,0xdc,0x59,0x57, - 0x7c,0x05,0x73,0xa5,0xee,0xc8,0x18,0x64,0xe2,0xe4,0x33,0x9b,0xf2,0xba,0x60,0x0c, - 0x30,0xc7,0x03,0xa8,0x23,0x9d,0xea,0xac,0x78,0xf2,0x60,0x90,0xdc,0x26,0x60,0xea, - 0x54,0xc0,0x05,0x02,0xde,0xb1,0xc7,0x9b,0xf0,0x66,0x33,0xa1,0xb1,0x8f,0x6d,0x22, - 0xca,0x5f,0xf4,0x89,0x83,0xec,0x94,0x80,0x20,0x51,0x81,0x8c,0x2a,0x60,0x74,0x4f, - 0x70,0x08,0x2e,0x8d,0x25,0x01,0x49,0xe1,0x01,0x6d,0xec,0x19,0x8a,0xeb,0x63,0x46, - 0x56,0x83,0x9f,0xbb,0x79,0x04,0x51,0x58,0x4d,0xa4,0x60,0x0c,0xc7,0x19,0x7b,0xc3, - 0x5e,0xde,0xe0,0x43,0xb6,0x77,0x67,0x52,0xe2,0x65,0xea,0x1a,0x40,0x11,0xbb,0xfb, - 0x5e,0xcb,0x91,0x67,0xf0,0x19,0x86,0x75,0x3c,0x57,0xc7,0x12,0x57,0x54,0xf1,0x0c, - 0x86,0x86,0xe2,0x5f,0x02,0x56,0x5c,0x94,0xc9,0x85,0x52,0xfc,0xe5,0x70,0xe1,0x28, - 0xcc,0x2f,0x2f,0xc8,0xfb,0x76,0xa5,0xbf,0x50,0x3f,0x36,0xc9,0x55,0x65,0x70,0x92, - 0x12,0x2a,0xb9,0xa0,0x7f,0x7c,0x4a,0x2f,0x82,0x55,0x6d,0x3b,0xbe,0x8b,0x37,0x56, - 0x18,0x83,0x24,0xea,0xd1,0x3d,0xa2,0xc0,0x2b,0x5f,0x47,0x5a,0x21,0xd9,0x61,0x9b, - 0x2f,0xd7,0xb8,0xd2,0x25,0x4c,0x7a,0xed,0xdc,0xea,0x51,0x0b,0xd4,0xef,0x69,0x04, - 0x64,0xdd,0x11,0x3b,0xc1,0xeb,0x37,0x70,0x7a,0x30,0xa3,0xcb,0x7e,0x81,0xf3,0x6f, - 0x6b,0x0b,0xbc,0x80,0xd9,0x37,0x86,0x8c,0xac,0xcd,0xfd,0x1c,0xcc,0x36,0xc3,0x49, - 0x28,0x4b,0x0d,0xed,0x80,0x7d,0xec,0xb2,0x87,0x10,0x00,0xe9,0x6d,0xb0,0x3b,0x79, - 0xfd,0x42,0x3f,0x8a,0xbb,0x97,0xa9,0x77,0xeb,0x6e,0x53,0x1b,0xd5,0x2e,0xfd,0xb8, - 0x34,0x9d,0x3e,0x86,0x08,0xb7,0x68,0x8a,0x7e,0x20,0x4b,0xa9,0xe9,0x2d,0x99,0xe8, - 0xdc,0x3a,0x0e,0xf3,0xf2,0x1b,0x63,0x13,0xc5,0xf9,0x31,0xff,0x5d,0x1d,0xf3,0xb8, - 0x18,0x4b,0xcb,0x13,0x37,0x36,0xed,0xcc,0x56,0xa2,0x34,0xf3,0x51,0x9a,0x31,0x4a, - 0x33,0x42,0x69,0x56,0x89,0x12,0xe7,0xc7,0xb3,0xcf,0x47,0x69,0xa6,0x28,0xb9,0x26, - 0x38,0xfb,0x6f,0xde,0x1d,0x30,0x1b,0x32,0x77,0x5b,0x12,0xf3,0xa0,0x92,0x81,0x08, - 0x19,0x94,0x7c,0x7a,0x95,0x93,0x22,0x59,0x45,0xe8,0x0b,0xda,0x67,0x62,0xcf,0xa0, - 0x1b,0x2d,0x5e,0x79,0x4d,0x1e,0xde,0x58,0x49,0xf1,0xec,0xd9,0x93,0x67,0xed,0xa0, - 0x89,0xdd,0x41,0x1e,0xd0,0x35,0xcf,0xa0,0x7c,0xb0,0x43,0xc9,0x53,0xd9,0x84,0xeb, - 0xa3,0x82,0xb3,0x2a,0x00,0x7d,0x94,0x8c,0x19,0xc1,0x07,0x17,0xe0,0xdf,0x20,0x52, - 0xc9,0x81,0xae,0x64,0x72,0xf4,0x64,0x15,0xec,0x63,0x2d,0x4d,0x9b,0x11,0x8b,0x39, - 0xbf,0x32,0xc3,0x18,0xd0,0x84,0x4e,0x82,0xac,0x41,0x46,0x84,0x73,0xec,0x68,0xee, - 0xb6,0xe6,0x62,0x1d,0x44,0x0f,0xb0,0x84,0x30,0xf8,0xd1,0xd2,0x43,0xda,0x65,0x5e, - 0xcc,0xfe,0xf3,0xf7,0x83,0x40,0x5f,0x71,0x50,0x22,0x6b,0x63,0x1e,0xbc,0xea,0xed, - 0x3c,0x7b,0xb6,0xfd,0x1d,0xe5,0x21,0x02,0x2b,0x99,0xe6,0x8f,0x2e,0x8d,0x24,0x26, - 0x20,0x74,0xd1,0x0f,0xcd,0xda,0x09,0xe8,0x58,0xac,0x55,0xa0,0x6c,0x21,0x2e,0x4e, - 0xc2,0xc7,0xde,0x49,0xc0,0x67,0x78,0x7b,0xfb,0x7f,0x27,0x79,0x8a,0xf7,0x63,0xf9, - 0x16,0xf1,0xc3,0x67,0xe5,0xe3,0x97,0x83,0x7f,0xbc,0x7f,0xb5,0x9f,0x86,0x50,0x2d, - 0xd3,0xb7,0x4e,0x68,0x1b,0x95,0x25,0xb3,0xdb,0xd9,0x31,0xcc,0x0d,0xa9,0x89,0x44, - 0xc4,0xeb,0xe4,0x7c,0x3a,0x39,0xa6,0x64,0xfe,0xc5,0x98,0x4b,0xba,0xd4,0xc4,0x31, - 0x6a,0x61,0x6f,0x46,0x9c,0xa1,0x7b,0x9a,0x25,0xa2,0x2b,0xe9,0x52,0x71,0xda,0xdc, - 0xcc,0x48,0xa9,0x9d,0xd0,0xb2,0x76,0x2c,0xd4,0x0a,0x9d,0x29,0x6e,0x5b,0xdf,0x7b, - 0xf7,0xeb,0xfb,0xdd,0xb7,0xaf,0xdf,0xbd,0x55,0x4b,0x2d,0xff,0x4c,0x49,0x0f,0xcd, - 0xab,0x0f,0x92,0x56,0xd8,0xae,0x5c,0xc8,0xf1,0xed,0xc3,0xcd,0x4f,0xfe,0x8a,0xad, - 0x49,0xb5,0x05,0x0c,0x3f,0x79,0x70,0xc9,0x3b,0xd5,0xc4,0xa8,0xc3,0x95,0x59,0xe5, - 0x7a,0x8c,0xc5,0x63,0x4d,0xb6,0x37,0x67,0x62,0x9b,0xa6,0x47,0x7d,0x34,0xdd,0x18, - 0x01,0x94,0x2a,0x29,0xda,0xa0,0x49,0xc5,0xd7,0xb6,0x88,0xff,0x81,0xce,0xa4,0x90, - 0x0d,0x50,0x5a,0xea,0xf5,0x87,0x5c,0x81,0x0f,0x46,0x48,0x98,0xd3,0x12,0xad,0x40, - 0x32,0x4a,0xb5,0xcf,0xc6,0x50,0x9f,0x2a,0x0a,0x99,0xec,0x15,0x2d,0x28,0xc7,0x00, - 0x45,0xc1,0xe0,0x8b,0x02,0xc9,0x09,0x34,0x0b,0x35,0x09,0x77,0xec,0x05,0x9c,0x62, - 0x32,0x5f,0xf4,0x48,0x57,0x5d,0x72,0x62,0x5f,0xd8,0x9f,0xe0,0x88,0x05,0x80,0x50, - 0x22,0x28,0x54,0x58,0x16,0x59,0xe0,0x83,0xf1,0x8a,0x01,0x8c,0x5f,0xb6,0xa7,0xe8, - 0xdf,0xea,0x5c,0x2e,0x9f,0xf8,0x2b,0x68,0xad,0x4c,0x14,0x42,0x11,0x81,0x8f,0x27, - 0x3d,0x27,0xc6,0x73,0xcb,0x28,0xad,0x13,0x99,0x54,0x98,0x22,0x50,0x8b,0x9a,0x06, - 0xd4,0x06,0x4d,0x94,0xec,0xa6,0xa1,0x3d,0x14,0x5c,0xdf,0x12,0xea,0xb0,0xc0,0x68, - 0xcf,0xde,0xa5,0x19,0xdd,0xae,0x63,0x82,0x56,0x41,0x28,0x74,0x40,0xfd,0x11,0x93, - 0x73,0x4c,0xfa,0x80,0x91,0x5f,0x56,0x54,0xe9,0x62,0x0a,0x4e,0xbe,0x86,0x86,0x1a, - 0x8d,0xda,0xb7,0x0d,0x30,0xe3,0x66,0xc8,0x68,0x7c,0xb8,0xa2,0xb5,0x4c,0xd5,0xe1, - 0xba,0x42,0x8e,0x47,0x6b,0xb0,0xe0,0x29,0x0c,0x4d,0x3f,0x7e,0x57,0x95,0x0b,0x4c, - 0xb9,0x40,0x0b,0x3a,0x9d,0x06,0xf4,0xba,0x37,0x0e,0x49,0x8c,0x64,0x9c,0xeb,0x40, - 0xd1,0x77,0x86,0xa3,0xb9,0x4a,0xb3,0x56,0xa0,0x09,0x2f,0xd0,0xe5,0xf5,0xf1,0x94, - 0xdd,0x49,0xbc,0x0c,0x5e,0x40,0xcf,0xfb,0x32,0x74,0xce,0xf4,0x2c,0x99,0x5d,0xfa, - 0x6a,0x75,0x39,0xde,0x15,0x83,0x5d,0x1d,0x26,0x38,0xcd,0x23,0x75,0xa8,0x6a,0x25, - 0xcc,0xd6,0xc9,0x20,0x82,0x92,0x3a,0x46,0x8c,0xb6,0x22,0x29,0x70,0xe5,0x11,0x92, - 0x0d,0xb3,0xe9,0x39,0xce,0xd6,0x54,0x21,0x37,0x1e,0x6d,0x89,0x3c,0xeb,0xdb,0x85, - 0x62,0x8a,0xf2,0x56,0x17,0xa0,0x3d,0x53,0x50,0x3c,0xf7,0x47,0x12,0xad,0x40,0x4f, - 0x6d,0xd6,0x5a,0x18,0xf6,0x73,0xf6,0x9e,0xeb,0x1a,0x20,0xd0,0x39,0xb8,0xda,0x1d, - 0xc8,0x9e,0x4b,0x99,0x86,0x31,0xc2,0x08,0xa2,0x1f,0x31,0x87,0x8b,0xb3,0xec,0x96, - 0xac,0x9d,0xdf,0x36,0xbf,0x6d,0xc6,0xd6,0x10,0x41,0xc1,0xe0,0xb1,0x0a,0x8a,0xb5, - 0xc4,0x14,0xe5,0x1a,0x66,0x01,0xc4,0x06,0xd9,0x7a,0x89,0xee,0x15,0x74,0x39,0xd8, - 0x7b,0x6f,0x69,0x4b,0x4b,0xb2,0x5a,0xd4,0x7e,0xa1,0xb5,0xed,0xe7,0x1b,0xbc,0xfa, - 0x9f,0x1d,0xaf,0x35,0xae,0xea,0x55,0xe8,0x6d,0xef,0x35,0xad,0x7a,0x78,0x25,0xb5, - 0xb0,0x5a,0x5b,0xcd,0x9a,0x7a,0xba,0xbc,0x0c,0x89,0xe3,0x69,0xb7,0x30,0xfc,0x14, - 0xcf,0x49,0xd5,0x5f,0xe7,0x19,0x8b,0x7a,0x35,0xcb,0x87,0xc5,0x89,0x51,0x02,0xdc, - 0xad,0x00,0x35,0xc2,0x86,0x74,0x50,0xac,0x8d,0x72,0x8e,0x0d,0x74,0x75,0xe5,0xb3, - 0xeb,0x6f,0x35,0x00,0x1a,0x50,0x46,0xe5,0xaa,0x9f,0x03,0x8b,0x1c,0x49,0x09,0x22, - 0x7a,0xae,0x9b,0xcd,0xbf,0x53,0xf3,0x0b,0x8c,0x71,0xbe,0xd8,0x98,0x66,0xe3,0xa8, - 0x42,0x06,0xb1,0x3b,0x68,0xdc,0x4e,0x94,0x3b,0x66,0xe0,0x5d,0xf4,0x52,0x37,0x9f, - 0x82,0x2d,0xa8,0xb9,0xc5,0x48,0x0f,0x42,0xa0,0xc9,0xb4,0x7f,0xdd,0x9d,0xb1,0x22, - 0xc0,0x59,0x27,0x55,0x43,0x39,0x1a,0x2f,0x3e,0x65,0xf9,0xff,0x67,0x72,0xf2,0x7f, - 0x39,0x93,0x13,0xcf,0x7e,0xc3,0x95,0xb0,0xb4,0x47,0x55,0xce,0x54,0x5b,0x91,0x95, - 0x96,0x2a,0x41,0xb5,0x39,0xc7,0x7a,0x0b,0x96,0x60,0x8d,0x05,0xcb,0xe7,0x5b,0x82, - 0x04,0x7f,0xdd,0x12,0x24,0xf8,0x02,0x4b,0x10,0x01,0xb0,0xc6,0xec,0xe0,0x4b,0x0d, - 0x42,0xf4,0xf3,0xef,0xb7,0x07,0xf9,0x72,0x0d,0xd7,0xe7,0xab,0xb3,0x3c,0x3b,0x94, - 0xbd,0xc2,0xbe,0x12,0x6d,0x59,0xa6,0xff,0xc5,0x47,0x89,0xd5,0xc7,0x94,0x9e,0x85, - 0x7a,0x64,0x1e,0x94,0xd7,0x8a,0xc9,0xa5,0x7f,0x40,0xf1,0x40,0x4b,0xbb,0xbf,0x64, - 0x53,0x67,0x2d,0x6a,0xcd,0x34,0xb1,0x26,0xb8,0xee,0xe1,0xb8,0x6f,0x60,0x6c,0x4b, - 0x79,0xb6,0xb5,0x68,0xc5,0x34,0xf9,0x79,0x66,0xc3,0x3e,0x3a,0xd6,0x52,0x78,0xc9, - 0x28,0xd8,0xa7,0xce,0x7d,0xe6,0x09,0x5c,0x9e,0x2d,0x14,0x20,0xe3,0xad,0xb4,0x5d, - 0x79,0xb8,0xb5,0x40,0x70,0xbf,0xb5,0xc0,0x3d,0x87,0xe6,0x4a,0x35,0x22,0x84,0x39, - 0xf8,0x07,0xf7,0x59,0x67,0x66,0xe0,0x0d,0x33,0x63,0x5e,0xb0,0x60,0x6b,0xf9,0x7f, - 0xef,0x61,0xbb,0x77,0x20,0x1e,0x44,0xf4,0x58,0x87,0xda,0x65,0x32,0xa9,0x1e,0xb1, - 0x65,0x2d,0x2b,0xa1,0xf4,0x3a,0x2f,0xd6,0xcd,0xc8,0xba,0x4f,0xc3,0x82,0x3d,0xe6, - 0x0b,0x8e,0xec,0x72,0xe6,0x0d,0x80,0x8b,0xcb,0x19,0x0e,0xb4,0xad,0x35,0xc2,0xbb, - 0x12,0x2c,0x8a,0xe8,0x96,0xeb,0x9d,0x53,0x1f,0x74,0x6c,0x40,0xab,0x91,0x6a,0x95, - 0x8b,0x15,0x75,0xae,0x6d,0xdd,0x5e,0x90,0x93,0x6f,0x72,0xec,0x17,0x0d,0xf1,0x88, - 0xe3,0xa6,0x85,0x9e,0x70,0x2d,0xcc,0xec,0xfc,0x68,0xce,0xfa,0x0b,0x2f,0x29,0x87, - 0xcd,0xa3,0xd8,0x09,0xb6,0x00,0x1b,0xc3,0x74,0x59,0x2e,0x31,0xde,0x6d,0x96,0x62, - 0xcd,0x2a,0x76,0x6b,0x7c,0x18,0x46,0xe2,0xa7,0x25,0x32,0x6c,0x61,0x61,0x0e,0xf0, - 0x17,0xc6,0xb9,0x0b,0xbb,0x75,0x91,0xc1,0xc5,0x3f,0xf9,0xc2,0xe8,0x33,0x70,0x28, - 0xb1,0xe0,0x63,0x95,0x85,0x9e,0x2b,0x2d,0xc4,0xf1,0x8b,0xb8,0x7c,0xa1,0xa3,0xc0, - 0xd8,0xff,0xaa,0xe2,0x73,0xa3,0x8f,0xe6,0x48,0x2f,0xee,0x30,0x1d,0xe8,0xbd,0x38, - 0x67,0x8b,0x3b,0xf1,0x57,0xa5,0xaf,0xdf,0xc0,0x47,0x8b,0x5b,0xb2,0x4b,0x21,0x85, - 0x12,0x16,0x19,0xaa,0x5d,0xa4,0x0e,0x4a,0xe7,0xac,0x08,0x6e,0xd5,0xb7,0x93,0xd9, - 0xc9,0xa0,0x45,0xee,0xce,0x20,0x26,0xc9,0xef,0x2d,0x52,0x7b,0x53,0xe2,0x03,0xad, - 0x30,0x4c,0xf2,0xab,0x73,0x24,0xd3,0x1e,0x16,0xc9,0x88,0x07,0xd4,0x92,0x4b,0xd2, - 0xd8,0xee,0x8d,0xcc,0x33,0x4d,0x39,0x79,0xba,0x2b,0x0f,0xb1,0x03,0x10,0x4a,0x95, - 0xbf,0xc5,0x81,0x75,0x7a,0x68,0x06,0x59,0x52,0xb8,0xfd,0x49,0x6c,0x4f,0x24,0xc6, - 0x17,0xd8,0x91,0x71,0x4a,0xd0,0x32,0xda,0x55,0xab,0xbd,0x4e,0xd3,0x02,0x94,0x8e, - 0x2d,0x64,0xd2,0x87,0x48,0xcf,0x17,0x83,0x34,0xf5,0x87,0xa2,0xde,0x21,0x8d,0x8a, - 0x22,0x9d,0x0a,0xed,0x59,0xab,0xb8,0xf1,0x18,0xdb,0xd1,0x52,0x0c,0xf2,0xea,0x01, - 0x02,0xb8,0xd4,0xaf,0x79,0x7a,0x79,0xf8,0x04,0xde,0xc6,0xe6,0x61,0x0d,0x4f,0xb5, - 0xf0,0x2e,0x34,0x17,0x4e,0xa9,0x8b,0x76,0x8e,0xe8,0x0a,0xf3,0x4e,0x3c,0x93,0x1e, - 0x92,0x7d,0x15,0xca,0x11,0x73,0xba,0x3c,0xdc,0x3e,0x3a,0x8a,0xdd,0x72,0xdb,0xb6, - 0x5c,0xae,0xe5,0x08,0x5e,0x10,0x72,0xd9,0x1a,0x1a,0x43,0x85,0xbb,0x0a,0x07,0x6a, - 0x84,0x4f,0xa9,0x0d,0xef,0x6a,0x3e,0x76,0x16,0xe2,0x2e,0xa0,0xda,0xc5,0x1a,0xc0, - 0x3a,0x6d,0xfb,0xf5,0x03,0x0b,0x40,0x53,0xe6,0x64,0x04,0xfa,0xa4,0x1d,0x78,0x1e, - 0xd6,0xee,0x42,0x46,0xb0,0xf0,0xf5,0x34,0x22,0x5f,0x4f,0x23,0xd7,0xd7,0xd3,0x88, - 0x7d,0x3d,0xa9,0xb2,0x7b,0x99,0xb0,0x67,0x3c,0xf3,0x6c,0x67,0x51,0x60,0x4e,0xa2, - 0x01,0xf5,0xbf,0xaa,0x6f,0xf5,0xfa,0x7a,0xf9,0x73,0xc5,0x2d,0xd4,0xa8,0x16,0x36, - 0xc2,0x1a,0x2a,0x24,0xea,0xfe,0x89,0x92,0x02,0x24,0x81,0xd4,0xde,0x27,0xfa,0x75, - 0x50,0xb2,0xba,0x9e,0x06,0x78,0x91,0x11,0x97,0xce,0xda,0x76,0x60,0xea,0xb0,0x74, - 0x82,0x05,0x78,0x81,0xad,0xfa,0xaf,0x28,0xe4,0x41,0x44,0x93,0xd1,0x0c,0x99,0x61, - 0x4a,0xcf,0x0d,0x76,0xca,0x48,0x0c,0xc6,0xf1,0xfd,0x14,0x7d,0xbc,0xa9,0xd1,0xe4, - 0x36,0x31,0x7a,0x85,0x0e,0x43,0x42,0x80,0x3e,0x5e,0xcf,0x01,0x62,0xcb,0x33,0x25, - 0xc5,0x73,0xf9,0xe1,0x06,0x23,0xc0,0x22,0x79,0x17,0xc3,0x96,0x86,0xce,0x9b,0xe8, - 0x93,0x8d,0x2e,0x59,0xac,0xe2,0xd0,0x4d,0x16,0xbe,0x4f,0xdc,0x80,0xed,0x45,0x8b, - 0xa2,0x0a,0xa3,0xd0,0x79,0x5b,0x1e,0x83,0xe3,0x34,0xb9,0xc8,0x8c,0x2f,0x04,0x24, - 0x6f,0xe0,0x19,0x88,0xde,0x60,0xed,0x1c,0x86,0xdb,0x04,0x7e,0x87,0xfe,0x7f,0x42, - 0xff,0x3f,0xa5,0xff,0x9f,0xd1,0xff,0xcf,0xc3,0x04,0x91,0x33,0x10,0xca,0x02,0x91, - 0x37,0xc2,0xed,0x26,0xfe,0xa0,0xe4,0x36,0x8a,0x6e,0x3f,0x09,0x8f,0x5a,0x68,0xd1, - 0xe1,0xf6,0xc5,0x1c,0xf5,0xa3,0x3d,0x20,0x57,0x3d,0x68,0x89,0x83,0x31,0xc1,0x31, - 0xa7,0x30,0x0f,0x32,0xa2,0xe8,0x45,0xbf,0x57,0xd3,0x69,0x1e,0xdb,0x47,0xd5,0xba, - 0x2f,0xc2,0x58,0x5a,0x75,0xc6,0xf5,0x1f,0xd4,0xc6,0x1f,0x2f,0xca,0x07,0xc8,0xda, - 0xda,0x1f,0x68,0xcd,0x38,0x3d,0x2a,0x97,0x38,0xfc,0x43,0xbc,0x95,0x9d,0x08,0xd5, - 0xa9,0xa9,0xcd,0xcd,0xe2,0x70,0xe8,0x04,0xec,0x5c,0x11,0x3a,0x39,0x7c,0x7a,0xd4, - 0xc1,0x9f,0x2a,0x24,0x5c,0xda,0xfb,0x63,0x8d,0x5c,0x5e,0x11,0xdb,0xcc,0x13,0x68, - 0xfe,0x04,0x0b,0x28,0xde,0xd8,0xcf,0x00,0xd4,0x4d,0x75,0x7a,0xd1,0x43,0x84,0xee, - 0xec,0xd5,0xa8,0x97,0x52,0x42,0xe1,0x5e,0x7a,0x52,0xc3,0x9b,0xd8,0xf1,0xff,0xcc, - 0x01,0x1f,0x5f,0x3a,0xf9,0x92,0x52,0xd7,0x3b,0xe2,0x3d,0x1b,0xae,0xea,0x94,0xb6, - 0xd7,0x33,0x0d,0x1e,0x0c,0xc7,0xb9,0xd7,0x68,0xa3,0x27,0x27,0x62,0x6f,0x69,0x1c, - 0xa6,0x84,0x52,0xbb,0x57,0xba,0x98,0x8f,0xe7,0xf6,0x06,0xa0,0xe3,0x14,0x7f,0x44, - 0xde,0x4d,0x48,0x7c,0x89,0x7a,0x54,0x8f,0x9d,0xba,0x44,0x8c,0x09,0xd2,0xf8,0xfe, - 0xb5,0xba,0xab,0xa3,0x48,0xec,0x31,0x72,0xe4,0x7a,0xb5,0xd4,0xc1,0x3b,0x2b,0xd1, - 0xf9,0x55,0xc6,0x35,0x7f,0x5b,0x5c,0xfa,0xb6,0xa5,0x2f,0x29,0x06,0x71,0xcf,0xa7, - 0xe2,0x4f,0x34,0xa7,0xe2,0xb9,0x7c,0xa4,0x12,0x35,0x3c,0xe7,0x7b,0x4b,0xf4,0x61, - 0x5a,0xab,0x5c,0x87,0x75,0xdd,0x54,0xab,0x4c,0x69,0x37,0xea,0x43,0x08,0xb6,0xb1, - 0x3f,0x83,0xd9,0x7c,0x03,0x7d,0x82,0xfe,0x43,0xd2,0xf7,0x5d,0x94,0xa1,0x11,0x5c, - 0x54,0xed,0x8f,0xd8,0x53,0x36,0xcd,0xd8,0x52,0xf4,0x72,0x5b,0x96,0x7a,0xb6,0xc0, - 0x2b,0xff,0x94,0xc3,0x64,0x85,0xce,0x26,0xf8,0x00,0x27,0xac,0xd1,0x2a,0x3d,0x9d, - 0xfd,0x1d,0xa5,0xe2,0xb6,0x57,0xac,0x24,0xea,0x99,0xe8,0xef,0x91,0x1e,0x27,0x4b, - 0xe2,0x06,0x31,0xa5,0xeb,0xce,0xc7,0x5e,0xed,0x63,0x43,0xff,0x38,0x0e,0xc7,0xce, - 0x6e,0xb8,0x54,0x07,0x55,0xf9,0x3a,0x9d,0xde,0x4d,0x83,0xce,0x0a,0x17,0xdc,0xec, - 0x35,0x39,0xeb,0x6b,0x13,0x15,0x21,0xfe,0x83,0x3d,0xf0,0xd5,0xae,0x70,0x19,0xff, - 0x7d,0xf5,0x30,0x85,0x23,0x3d,0x08,0xf1,0x30,0x45,0xc7,0xd9,0xc2,0x04,0xab,0x8e, - 0x01,0x6b,0xae,0xc0,0x89,0xfb,0x5c,0xd1,0xe5,0x87,0xb5,0x8d,0xf0,0xa3,0xbd,0x43, - 0xf8,0x82,0xec,0x98,0x5f,0x1a,0x0f,0x57,0x1f,0x8d,0x16,0xeb,0x63,0xd8,0xa0,0xe7, - 0x17,0xf5,0x80,0xdb,0xa6,0x4c,0xe9,0xc0,0x5c,0x4f,0x16,0xce,0xaf,0xfa,0x38,0xa6, - 0x82,0x4b,0xb3,0xbc,0x21,0x3e,0xf1,0x3c,0xe4,0x0e,0x70,0x23,0x1b,0x47,0x51,0xe6, - 0x6e,0x5f,0x7e,0x35,0x1c,0x92,0xbe,0x50,0x4e,0x09,0xcd,0x01,0x08,0x37,0x49,0xc2, - 0x0f,0xa0,0x62,0xf5,0xc2,0x55,0x65,0x40,0xf3,0x86,0xd6,0xcf,0x04,0xc5,0x46,0x5b, - 0xc8,0x79,0x34,0x1c,0x18,0x3d,0xf0,0xe6,0xe6,0x92,0x1c,0x3d,0x37,0xd2,0x75,0x03, - 0x52,0x58,0x4c,0x0f,0x74,0x38,0x11,0x99,0x63,0xb1,0x23,0x1b,0xa1,0x54,0xc7,0xac, - 0xed,0x6f,0x1c,0x66,0x84,0x89,0x14,0x74,0x93,0x89,0xa0,0x61,0xb2,0x01,0x25,0x73, - 0xb0,0x65,0x36,0xa6,0xe5,0x7f,0xaa,0xcf,0x2e,0x69,0x97,0x3f,0x8e,0x40,0x67,0x2c, - 0xb4,0xe0,0xab,0x2f,0x03,0xff,0x1f,0xd4,0x6b,0x41,0x57,0x77,0x30,0x52,0x3a,0x2f, - 0x4a,0xbf,0xe0,0x9b,0xd1,0xb6,0x96,0xf8,0x33,0xaa,0x2a,0xef,0xec,0xd3,0x03,0xd9, - 0xc3,0xa0,0xbc,0x31,0x2b,0xce,0xb5,0x9c,0xaf,0x69,0xd6,0x72,0xbe,0xc2,0x58,0x41, - 0x47,0x3e,0x59,0x3b,0x46,0x47,0x1e,0x54,0xfc,0x83,0x96,0x3c,0x30,0xd9,0xbe,0xc2, - 0x96,0xa0,0xb5,0x36,0xcc,0x91,0x43,0xb0,0x65,0x3d,0x27,0x68,0x5d,0xbe,0xa8,0xc1, - 0x91,0xd4,0x49,0x52,0xff,0x38,0x12,0x28,0x54,0xd0,0x1e,0xb3,0x4a,0x39,0xff,0x94, - 0x95,0xe0,0x62,0xe2,0x39,0x0e,0xdd,0xf9,0x2b,0x5d,0xb3,0x64,0xfb,0x99,0xcb,0xd6, - 0xc9,0x1f,0x47,0xe8,0x19,0xc7,0xb6,0xd7,0xf9,0x9c,0x49,0x26,0x87,0x41,0x6a,0x2b, - 0x60,0xf7,0xbe,0x68,0xb5,0xc5,0x33,0xde,0xcc,0x93,0x2a,0x6a,0x4c,0x7d,0xf5,0xef, - 0x12,0x4b,0x09,0x31,0xe6,0x75,0xc0,0x63,0x1f,0xfd,0x49,0x27,0x44,0x14,0xd6,0xec, - 0x7e,0xc0,0x30,0xf0,0x5a,0x68,0x8f,0x71,0x2f,0x47,0xf0,0x31,0xda,0xe0,0x29,0xfc, - 0x9e,0x27,0x7c,0x0e,0xd5,0x44,0x77,0xc0,0x7e,0x9c,0x31,0x3d,0x61,0x2f,0x8d,0xa6, - 0x87,0xac,0x8c,0x14,0xd5,0x5c,0xd6,0x90,0xf3,0xc7,0x80,0xb4,0xf6,0xb3,0x7e,0x66, - 0xec,0x5b,0x4d,0x9c,0x04,0xa0,0x57,0xc9,0x45,0xfd,0x69,0xb8,0x7f,0x75,0x8e,0x18, - 0x26,0x76,0x13,0xfc,0xa8,0xa8,0x46,0xbb,0x9f,0x92,0x0f,0x1b,0x56,0x4b,0xf7,0x47, - 0xb9,0xfa,0xbb,0xf1,0xe6,0x33,0xa5,0x11,0x30,0x02,0x54,0x09,0xc0,0x8f,0x4f,0xee, - 0x15,0xf2,0x57,0x87,0x06,0x25,0x93,0x23,0x6a,0x79,0xcc,0x06,0x14,0x7f,0xa9,0xdc, - 0xda,0x1b,0xf8,0xb3,0x8c,0x2e,0xba,0x9f,0x92,0x3f,0x4b,0x51,0x6b,0xfe,0x34,0x62, - 0xc2,0xd6,0xc7,0xbc,0xb6,0xb5,0x24,0x0a,0xa1,0x4c,0x49,0x16,0x02,0x57,0x31,0x21, - 0x6a,0xc8,0x9d,0x27,0x81,0x2b,0xcc,0xab,0x34,0x35,0x7e,0xd1,0x2c,0x85,0xc2,0xba, - 0xab,0x0a,0x85,0xa5,0x58,0xfd,0xca,0xb2,0x2c,0xed,0x78,0x75,0xd7,0x97,0xd2,0xb3, - 0x75,0x1d,0xfe,0x4f,0x20,0xc5,0x2b,0xa7,0xf8,0xf6,0x34,0x80,0xe7,0x03,0xb3,0xfd, - 0xa4,0xe1,0xd2,0x6a,0xde,0x99,0x00,0x41,0x2c,0xd1,0xfd,0x1d,0xfc,0x42,0xa0,0xe6, - 0x52,0xeb,0x5a,0x6b,0x51,0x09,0x29,0x39,0x18,0xa7,0x79,0x59,0x59,0x01,0x40,0x29, - 0xc1,0x1b,0x80,0x48,0xa0,0xe2,0x86,0x1d,0x7e,0x15,0x91,0x04,0x0c,0xb2,0xb3,0x34, - 0x23,0xc1,0xab,0x0c,0x49,0x4c,0x7b,0x0a,0xa2,0x0c,0xc6,0x50,0x84,0x34,0x63,0x82, - 0x2f,0xfb,0x87,0x8c,0x4a,0xa8,0xeb,0x60,0x6e,0xcd,0x10,0xf7,0xc5,0xd3,0x26,0xf1, - 0x70,0xed,0xa6,0x59,0x42,0x15,0x63,0xc9,0xd7,0x6a,0xba,0x77,0x03,0x28,0xa9,0x53, - 0xa2,0x06,0x92,0xd5,0x15,0xef,0xf3,0x66,0xcc,0xa4,0xd1,0x9e,0x23,0x0a,0xb9,0x45, - 0x05,0xae,0x16,0x7e,0x2a,0x85,0x41,0x47,0xb7,0x73,0x7c,0x5a,0xea,0x0e,0x24,0x2f, - 0xf6,0x1f,0xc4,0x67,0xa8,0x7b,0xa2,0x8f,0xfb,0xb5,0x18,0xbf,0x8d,0xaf,0x8b,0x1d, - 0xc8,0xa3,0x61,0xec,0x0a,0x9a,0x76,0xbb,0xab,0x5b,0x1a,0xec,0x1d,0x4c,0x51,0xa4, - 0xaf,0xe9,0x56,0xf0,0xbb,0x1e,0x35,0xaa,0xd8,0xea,0x27,0xd5,0x87,0xb4,0xef,0x55, - 0x3a,0x24,0xb0,0xc7,0xe9,0xa5,0x48,0x32,0x7b,0x7a,0x92,0x91,0x38,0xad,0x41,0x53, - 0x69,0xf6,0xda,0x74,0x46,0x98,0x98,0x81,0x44,0xd9,0x88,0xd0,0x35,0x07,0xec,0x9a, - 0x29,0xa8,0x0d,0x50,0x1e,0x99,0xce,0xb5,0x39,0xb1,0x94,0x25,0x19,0x77,0x3a,0x82, - 0x38,0xcb,0x1b,0x45,0x10,0xcd,0x30,0x78,0xf0,0x4d,0xcb,0xc3,0xe6,0xda,0x58,0x16, - 0x96,0x2b,0x2d,0x0d,0x15,0x02,0x62,0xb6,0x9a,0x8c,0xde,0x75,0xa2,0x3d,0xf1,0x96, - 0x8c,0x0a,0x98,0x72,0xc9,0x75,0xac,0x3b,0x4b,0x97,0x70,0x54,0x91,0x29,0x87,0x6a, - 0xca,0x33,0x81,0xa5,0xbe,0x54,0xf7,0x2f,0xa0,0x62,0x73,0x83,0xf8,0x49,0x82,0x60, - 0x69,0x67,0x29,0x7b,0x45,0x15,0xe3,0xa8,0x1c,0x09,0x16,0x1e,0x8f,0x70,0x76,0x94, - 0xfe,0xa6,0x49,0xb3,0x98,0x31,0x60,0x5b,0x09,0xaf,0x6c,0x68,0x08,0x9c,0xb1,0x3f, - 0x02,0x3f,0xf0,0x4b,0x89,0xcb,0x6f,0xa2,0x84,0xb1,0x12,0x53,0x87,0xfe,0x9c,0x4c, - 0x0b,0xbf,0xa4,0xae,0xab,0x07,0x23,0x34,0x48,0x75,0x4b,0x55,0xd5,0x3a,0x0d,0xf2, - 0x89,0x1b,0x14,0xc1,0xf5,0xf5,0x2f,0xcf,0x18,0xad,0xa9,0xfa,0x84,0xee,0x84,0xb4, - 0x68,0x5c,0x1b,0x3f,0x58,0xbc,0x20,0x5e,0x8d,0xae,0x72,0x48,0xa9,0x91,0x14,0xd3, - 0xfd,0x71,0x27,0x54,0x11,0x16,0x85,0xf5,0x9a,0x0a,0xcc,0x6a,0x48,0x6a,0x11,0xa1, - 0x16,0x4d,0xf8,0x24,0x96,0x0d,0xb4,0x47,0x62,0xd1,0x80,0x14,0xdb,0x66,0x1d,0x25, - 0x68,0xd1,0xd9,0x42,0x23,0x28,0x5b,0xd8,0x72,0xac,0xd2,0x20,0xc4,0x2b,0x56,0x8e, - 0x15,0x58,0x67,0xfb,0x59,0x6b,0x14,0xfb,0x71,0x0d,0xbc,0x55,0x2d,0x2a,0xe6,0x78, - 0xc1,0x98,0xcb,0x0b,0x22,0xcb,0x62,0x04,0x45,0x57,0x9b,0x61,0x03,0xe3,0xce,0x59, - 0x71,0x64,0xf2,0xd1,0x99,0x6a,0xea,0x2e,0x56,0xca,0xbd,0xa5,0xb8,0xce,0xd9,0xb9, - 0xbb,0x02,0x96,0x7c,0x25,0x5f,0xa4,0x40,0x4f,0x4a,0x57,0x30,0x5f,0x04,0x0d,0xb4, - 0x9c,0x01,0xd1,0x12,0x98,0x0b,0xeb,0xfc,0x1d,0x62,0x4c,0xc4,0xc4,0x12,0x48,0x57, - 0xea,0xe7,0x4a,0x1e,0x02,0xff,0xd5,0xd2,0x52,0x20,0x86,0xfc,0xdc,0x04,0x89,0xef, - 0x6b,0x44,0x41,0xc4,0x62,0x78,0x5c,0x93,0x1a,0x9d,0xf0,0xc5,0x15,0x05,0x66,0x40, - 0x7b,0x08,0xcb,0x40,0xcf,0x3c,0xc7,0xe2,0x1a,0xda,0x90,0x40,0x0d,0x10,0x15,0x33, - 0x9a,0x9a,0xe4,0x54,0xad,0x6f,0x82,0x11,0xe2,0x35,0x96,0xb8,0x0e,0x1a,0x0e,0x5e, - 0xa2,0x39,0xc8,0xcc,0x25,0x2a,0xb9,0xe1,0x03,0xdb,0x78,0x5f,0xe5,0x6f,0x0f,0x99, - 0xce,0x6e,0xb4,0xe9,0x77,0xde,0x7b,0x12,0x32,0xd8,0x89,0xe3,0x57,0x2e,0xdd,0x83, - 0x46,0x7e,0x5e,0x1d,0x36,0xa9,0x20,0x21,0x29,0x3d,0xfb,0x34,0x54,0x4c,0x0f,0x22, - 0x96,0x4d,0x75,0xc4,0xac,0xf1,0x48,0xfa,0x10,0x4a,0x35,0x2a,0x24,0xa8,0xd0,0x5d, - 0xea,0x31,0x45,0x0a,0xbd,0x89,0x97,0x52,0xa2,0x39,0xdb,0x87,0xb4,0x68,0xe6,0x75, - 0x21,0x06,0x86,0x77,0xc2,0xae,0xfc,0xc5,0x1f,0x9f,0xd8,0xd3,0x73,0x00,0x19,0x54, - 0xe5,0xa5,0xad,0xbd,0x61,0x50,0x53,0x14,0x69,0xc0,0x47,0x3d,0xf2,0xcb,0xd7,0x6c, - 0x95,0xcb,0xd7,0xb7,0xe3,0x56,0x64,0xca,0xd4,0x7a,0x35,0x0f,0xd8,0x7f,0x94,0xdf, - 0x01,0x55,0x69,0xe6,0xe3,0xb4,0xcb,0x6e,0x96,0x23,0x25,0x50,0x96,0x9a,0xaa,0xc4, - 0x61,0xda,0x40,0x33,0x2b,0x05,0xde,0xee,0x8f,0x26,0xa9,0x3b,0x47,0x08,0x1c,0x25, - 0xc9,0x44,0x61,0xe1,0xa0,0x8d,0xd7,0x42,0x90,0x04,0x2c,0xd2,0x98,0xf3,0x4c,0xd1, - 0x39,0xd7,0x56,0xa3,0xea,0x69,0x56,0x17,0x4e,0xd0,0x0a,0xba,0x2a,0xe9,0x8a,0xc7, - 0xd9,0x59,0xf7,0x92,0xc5,0xe3,0x80,0x8c,0x6f,0xa0,0x35,0x11,0x27,0x68,0x24,0xd2, - 0xe3,0x54,0x9a,0xdb,0xca,0xbd,0xaf,0x20,0xd1,0x85,0x54,0x5b,0x51,0x35,0x69,0xe7, - 0x45,0xd3,0x2b,0xe9,0x0e,0x26,0xa5,0xe4,0xe4,0x95,0xb2,0xa0,0x8c,0xa6,0x96,0xa7, - 0x2c,0xc2,0x89,0x56,0xf0,0x8a,0x0a,0x41,0x2e,0x19,0x9c,0x4e,0x94,0xa6,0x44,0x1f, - 0x90,0x48,0xf9,0xc9,0x6a,0x41,0x6b,0x44,0x43,0x5e,0x54,0x3b,0xa3,0x17,0x54,0xdf, - 0xe0,0x4a,0xf1,0xd3,0x5e,0x80,0xc6,0xc5,0x2b,0xb2,0x70,0x29,0x6b,0x77,0x16,0x8d, - 0xb0,0x96,0x22,0xd3,0x26,0xc4,0xa4,0x3f,0x6e,0x6f,0xa0,0x79,0x94,0x53,0x76,0xe1, - 0x04,0x82,0xb3,0x90,0x5f,0xd2,0xf7,0x14,0xd4,0xaa,0xf8,0x2e,0x40,0x00,0xdb,0x2b, - 0xf3,0x2e,0x4b,0x23,0xf1,0x8e,0xe8,0xce,0xc5,0xca,0xe8,0xef,0xc3,0x31,0x96,0x11, - 0xda,0xc9,0x78,0x11,0xe0,0xb3,0x6b,0x70,0x1d,0x94,0xfd,0x41,0x4e,0x61,0xa3,0x18, - 0x28,0xfa,0xf0,0x1e,0x1e,0x4d,0x7e,0x5a,0x15,0x4d,0x1e,0xdc,0x41,0x86,0xc0,0x54, - 0xc7,0xb4,0xf3,0x09,0xb5,0x69,0x11,0xe9,0xaa,0x2f,0x24,0x2a,0x73,0x1c,0x08,0x28, - 0xd8,0x6b,0xc9,0x10,0x93,0x81,0x9d,0xcf,0x0e,0xf5,0xa1,0x98,0x96,0x38,0x9b,0xe0, - 0x72,0x45,0xce,0x44,0xab,0x0a,0xd5,0xbd,0x1a,0x2f,0x9f,0x37,0x6d,0x51,0xf2,0xae, - 0x7f,0x36,0xf3,0x27,0x8e,0xb7,0x89,0xa2,0x72,0xca,0x47,0x56,0x4d,0x49,0x7c,0xa3, - 0xd7,0x8c,0x7e,0xb1,0xc5,0xe0,0xf6,0x85,0x0c,0xf3,0x06,0x9f,0x65,0xa5,0xc5,0x34, - 0x6e,0x6b,0xdb,0x1e,0x84,0x3b,0x45,0xaa,0x96,0xf6,0x3c,0x30,0x5a,0xa3,0xe9,0xa6, - 0xbf,0xf4,0x01,0x70,0x6b,0xfa,0x55,0x96,0x6b,0x14,0x28,0xdc,0xc9,0x3e,0xc1,0xe6, - 0x78,0x44,0x46,0x80,0xd0,0xd2,0x1a,0x6a,0xa6,0x4a,0x51,0xc1,0xb4,0x23,0x91,0x9a, - 0x90,0x4a,0x9d,0xb9,0xaf,0x77,0x9a,0x39,0xc6,0x77,0x34,0xa2,0xf1,0x6f,0x83,0x30, - 0x21,0xd2,0x85,0x43,0xba,0x8a,0x31,0xa6,0x81,0x08,0xed,0x18,0x73,0xbf,0x42,0xa7, - 0x04,0x46,0xeb,0x7d,0x80,0x60,0x25,0x30,0x2d,0xc1,0x71,0xee,0xce,0xd8,0xcf,0x4a, - 0xe8,0xd2,0xcf,0x83,0xc0,0x31,0x8f,0xf5,0xf1,0xfa,0xb1,0x3f,0x7b,0x18,0x32,0x24, - 0x74,0x55,0xcc,0x43,0x39,0x2a,0xc0,0xdc,0xa1,0x7c,0xee,0x4b,0x38,0x57,0x87,0xd6, - 0x22,0xac,0x9c,0xa4,0x6d,0xcb,0x79,0x2d,0x57,0xd0,0x5a,0xbb,0x88,0xc2,0xfd,0xdb, - 0x24,0x5c,0x2c,0xec,0xeb,0x0f,0x68,0xd3,0xb4,0xd3,0x4b,0xbd,0xf4,0xce,0x76,0x0b, - 0xc3,0xbd,0xaa,0x1d,0x00,0x75,0x35,0x11,0xb1,0x5d,0x4c,0xdb,0x18,0x34,0xde,0xc4, - 0xf0,0xbc,0xab,0x73,0x3b,0xaf,0xa0,0x3d,0x42,0xdb,0x0f,0x81,0xbf,0xb9,0xf9,0xc0, - 0xb5,0x80,0x2b,0x9d,0x0c,0xfb,0x00,0x52,0xd1,0x66,0x4e,0xe7,0x38,0x19,0x1a,0xf5, - 0xf1,0xaf,0x16,0x06,0x21,0x70,0x6b,0x68,0xc5,0xb0,0x6d,0xc7,0x59,0x19,0xb4,0xc0, - 0x1e,0x28,0x61,0xdf,0x84,0x84,0x2e,0x7d,0xd4,0xe9,0x6c,0x3a,0xa0,0x9e,0xa8,0xee, - 0x28,0xab,0x74,0xbf,0xdb,0x78,0xc8,0xf8,0x60,0xa5,0x72,0xd5,0xe8,0x38,0x3d,0xc1, - 0xf0,0x20,0x70,0x13,0x56,0x88,0xfe,0x80,0x43,0xfd,0x85,0x68,0x94,0xca,0xa9,0x86, - 0x0b,0x9d,0x94,0xc4,0x07,0x1c,0x64,0xa4,0xa7,0x27,0x0d,0xe2,0xcb,0x28,0x13,0x85, - 0x48,0x08,0x63,0xe8,0xc9,0xa5,0x7c,0x39,0xba,0x19,0x72,0x63,0x05,0x50,0xd9,0x71, - 0x80,0x2a,0x7e,0x42,0x52,0x4b,0x3c,0x06,0xc5,0x89,0x8d,0xd9,0xb4,0x3f,0x24,0x72, - 0x4b,0xbb,0x48,0xa9,0xe1,0xd1,0x54,0xc3,0x95,0x30,0x16,0x8c,0xa6,0x79,0x26,0x6d, - 0xf9,0x35,0x89,0xb2,0x28,0xa5,0x0c,0xcc,0xe9,0x1f,0x45,0xd8,0xcd,0x9e,0x7b,0xda, - 0x3e,0xda,0x69,0x22,0x70,0x9d,0x2a,0xe7,0xea,0x75,0x91,0x6e,0x40,0x5b,0x56,0x91, - 0xc3,0xa3,0x7b,0xa1,0xe2,0x6b,0x84,0xa5,0x29,0xe4,0xc0,0x4d,0x71,0xd8,0x3d,0x77, - 0xda,0x46,0x1e,0xe4,0x08,0x7f,0x41,0xf6,0xb8,0x23,0xfa,0xdc,0xf8,0x37,0x47,0x8d, - 0x8a,0x45,0x6d,0x4f,0xda,0x7e,0x43,0x6b,0x93,0xa3,0x92,0xc2,0x52,0x55,0xad,0x95, - 0xb2,0x1b,0xb1,0xad,0x7f,0x16,0xc7,0x08,0x1a,0xab,0x01,0xd5,0xe2,0x0e,0xfe,0xb6, - 0xf0,0x47,0x08,0xe8,0x8b,0x9b,0x2e,0xb1,0xa5,0x35,0x55,0x21,0x20,0x49,0x35,0x73, - 0x18,0x03,0x8b,0x8f,0xd3,0xc5,0xc7,0xd1,0x56,0x85,0x38,0xef,0x60,0xba,0x56,0x79, - 0x36,0x58,0x2c,0x06,0x2a,0x0d,0x35,0xd9,0x3c,0xe7,0x6f,0xc5,0x89,0x78,0xe0,0xff, - 0xdb,0xda,0x92,0x5b,0x50,0x62,0xdd,0x84,0x4e,0xa1,0x71,0x96,0x6f,0x0c,0xd2,0x81, - 0x03,0x3f,0xea,0xb4,0x0e,0x5f,0x7e,0x75,0xb4,0xd0,0xcb,0x2d,0x1f,0xf3,0xaf,0xe9, - 0xfd,0x6f,0x47,0x71,0xd1,0x30,0xe0,0xcc,0xc6,0x03,0x76,0x46,0x13,0x74,0xa5,0xab, - 0x7b,0x62,0x82,0x78,0x3a,0xed,0x4f,0x66,0x04,0xd0,0xa3,0xfb,0xc0,0xc8,0x62,0x56, - 0x0d,0x32,0x28,0x9b,0xa6,0x50,0xba,0x7b,0xef,0xed,0xc3,0xeb,0xfd,0x5f,0x60,0x3c, - 0xbc,0xf5,0x4f,0xbe,0xc0,0xf4,0x15,0xb5,0xcb,0x0f,0x79,0x85,0x5b,0xbc,0x8a,0x4b, - 0x4d,0xae,0x01,0xaa,0x7b,0xc1,0x09,0x00,0x0b,0xb7,0x7f,0x04,0x53,0xd4,0x0c,0x9e, - 0x0f,0x55,0xd1,0x70,0x9b,0x64,0xc0,0x30,0x15,0xdd,0x5a,0x95,0x05,0x22,0xf5,0xe7, - 0xb7,0x50,0xff,0x7f,0x31,0x95,0xe6,0xc4,0xdc,0x77,0x12,0x88,0xf2,0xd6,0xdd,0x23, - 0x15,0xeb,0x19,0x77,0x8f,0xb9,0xf5,0xf7,0x98,0xe5,0x1c,0xff,0x40,0xcf,0x5f,0x4a, - 0xee,0x1e,0x73,0x03,0xa3,0x6c,0xbd,0x0d,0x3a,0x21,0x25,0x5f,0xb2,0xdf,0x66,0xbd, - 0x5e,0x20,0xa1,0xab,0x22,0x58,0xd0,0x2d,0xc8,0x5c,0x87,0x7a,0x94,0x2a,0x98,0xc0, - 0x51,0x62,0xfe,0x81,0xe9,0x5b,0xf6,0xdc,0xdf,0x9b,0x8e,0x27,0x0e,0x08,0x2f,0xec, - 0x55,0x09,0xc2,0x6c,0x29,0x08,0xc5,0x96,0x6b,0x53,0x52,0x0a,0x1e,0x81,0x96,0xd8, - 0xee,0x50,0x8b,0x06,0x93,0x8c,0x32,0xa5,0xf3,0x32,0x0d,0xd8,0xc0,0x01,0x1e,0x59, - 0x33,0x69,0x51,0x10,0x23,0xfa,0x52,0xc3,0x53,0xcf,0xa8,0x17,0xc0,0xbb,0xc1,0xcd, - 0x14,0xbe,0xc3,0x98,0x9b,0xc8,0x66,0x4b,0x3e,0x4d,0x7b,0x41,0x1d,0x71,0x38,0x90, - 0x61,0xf4,0xbb,0xf4,0x45,0x67,0x6a,0x02,0xfc,0x57,0xa0,0x2a,0x03,0x21,0xa8,0x7d, - 0x17,0xac,0xef,0xce,0xd4,0x41,0x82,0x6c,0xa9,0x3f,0x42,0x34,0x61,0x44,0xcc,0xb4, - 0xcc,0x57,0x8c,0x68,0xdf,0x9c,0xef,0x43,0x3f,0xbf,0xcc,0x99,0x11,0xaa,0xe6,0x3d, - 0xcb,0x46,0x14,0x85,0xa2,0xd0,0x61,0x22,0x6b,0x99,0xd9,0x9c,0x52,0x69,0x9d,0x76, - 0x36,0xd7,0x8f,0x00,0x4b,0xdc,0x58,0x98,0x20,0xe2,0x8c,0x3e,0x02,0xe4,0xc3,0x29, - 0x9b,0xc3,0xcc,0xed,0x33,0x59,0xf7,0x14,0x53,0x1c,0x09,0x58,0x89,0xab,0x66,0xba, - 0xc5,0xda,0x63,0xe0,0xca,0x30,0x69,0x68,0xa4,0xce,0xf2,0xf0,0xd2,0x38,0xa4,0x67, - 0x36,0x82,0xcc,0x18,0x99,0x52,0x42,0x37,0x7d,0xa6,0x88,0xde,0x1d,0x06,0x29,0xd2, - 0x32,0x4d,0x92,0x31,0x31,0x7d,0x6f,0xd1,0x69,0xaf,0x30,0x89,0x48,0xa0,0xf0,0xba, - 0xc7,0xa0,0x81,0x8a,0x38,0x26,0x0d,0x21,0x2a,0x23,0xcc,0x6b,0x68,0x74,0xdc,0xf7, - 0x54,0xbf,0x70,0xeb,0x22,0x1e,0xeb,0x45,0xc9,0x1e,0x82,0x70,0xed,0xf0,0xd5,0x33, - 0x74,0xbd,0xae,0xa0,0x9d,0xb0,0x15,0x99,0xc4,0x2c,0x87,0x5a,0x50,0xbf,0xc6,0x3b, - 0x4a,0xa3,0xa1,0x45,0xa3,0x2a,0x9b,0x76,0x14,0x4d,0xd7,0xa6,0xe2,0xc2,0x90,0xe8, - 0x26,0xdd,0x67,0x1f,0x1d,0xee,0x3a,0x1c,0x9b,0x5f,0xa9,0x95,0xcf,0x3e,0x0d,0x32, - 0xec,0x30,0x34,0x76,0x68,0x14,0xd6,0xeb,0x24,0x50,0x47,0x37,0x35,0xc4,0x05,0xa4, - 0x69,0x19,0xaf,0x1c,0x53,0xaa,0x8e,0xba,0xd7,0x2e,0xa4,0xe7,0xd2,0x61,0x30,0x32, - 0xd4,0x1b,0xad,0xac,0x95,0xa3,0xd1,0x51,0x89,0x56,0x1c,0x54,0x9d,0x84,0xec,0xee, - 0xa7,0xe8,0xa6,0x6e,0x3e,0xaa,0x5f,0xdb,0xd6,0x8f,0xa1,0x27,0x0d,0x6f,0x84,0xf0, - 0x96,0x9c,0x45,0xd4,0x0a,0xa8,0xa9,0x5e,0x89,0x32,0xa4,0x37,0x28,0x27,0x78,0x38, - 0x1c,0x50,0x9b,0x30,0x3f,0xa1,0x29,0x50,0x41,0xd7,0x9e,0x8c,0x74,0x1d,0xa2,0x7a, - 0x9e,0x74,0xcf,0xe7,0xcf,0xdc,0xcf,0xbf,0x21,0x94,0x66,0xa5,0x4f,0x0b,0xdf,0xc1, - 0x17,0x9f,0xbd,0x17,0x1a,0xd6,0xcc,0x38,0xaf,0x85,0xe6,0x58,0x94,0x18,0xae,0x3a, - 0xe3,0xee,0x09,0x03,0xcf,0x78,0x11,0x93,0x38,0x3b,0xe0,0xdf,0x38,0x2d,0x08,0x97, - 0xf1,0x9d,0xa9,0xe2,0x1a,0x73,0x45,0x07,0x80,0x2a,0x17,0xee,0xc1,0x7a,0xea,0x63, - 0x3d,0x2d,0x63,0xfd,0xfb,0xee,0x87,0xb7,0xaf,0xdf,0xfe,0xd4,0x92,0x40,0x30,0x61, - 0x4d,0x9a,0x90,0x3e,0x68,0x33,0x9b,0x87,0xee,0xb4,0x0a,0xab,0x29,0xb0,0xaa,0x34, - 0x12,0x21,0xae,0x73,0x3a,0x60,0xdb,0x6e,0x23,0xb1,0xe2,0x5a,0x79,0x89,0x8b,0x15, - 0x82,0x9b,0x09,0xf4,0xba,0x28,0x56,0x7b,0x35,0x92,0xa5,0x52,0x77,0xb1,0x1e,0x95, - 0xde,0xf3,0x8d,0x13,0xff,0x1b,0x27,0x2b,0xbe,0x51,0x3c,0x27,0xfb,0x3c,0x5d,0x3a, - 0xac,0xc5,0x62,0xb1,0x67,0x91,0x52,0xd7,0x37,0x32,0x4d,0x91,0xf3,0x6e,0x8d,0xa3, - 0x23,0x8b,0x2e,0x9d,0x97,0x5f,0xe5,0xb8,0x89,0xa9,0xa6,0x2d,0x4c,0x00,0xbd,0xbb, - 0x25,0x77,0x4a,0x70,0xff,0x27,0xab,0x22,0xe0,0xa4,0x70,0x21,0x70,0x32,0x1b,0xe5, - 0xf7,0x7c,0x23,0x8a,0xb8,0x9f,0x89,0x77,0x33,0x03,0xcf,0xc7,0x2b,0xeb,0xca,0x95, - 0x22,0xaa,0x7e,0x3e,0x76,0x2b,0x9f,0x8f,0xa9,0x2a,0x25,0x55,0xb1,0x31,0x65,0x5c, - 0xab,0x58,0x56,0x11,0x10,0xe6,0x01,0xad,0x8e,0xc6,0x5e,0xa0,0xb7,0x2e,0x99,0x01, - 0x0c,0xa8,0x6d,0x60,0x5f,0xa2,0xc5,0xf9,0x58,0x3e,0xb1,0x3c,0xcb,0x91,0xe8,0x11, - 0x0d,0x85,0xdc,0x8d,0x03,0xc4,0xc9,0x41,0x21,0xc3,0x23,0x57,0xb5,0xf7,0x06,0xcf, - 0xfb,0x08,0x9b,0x7b,0x83,0x27,0x5f,0x36,0x76,0xf3,0x71,0xe0,0xdd,0x0b,0xe8,0x37, - 0x1e,0x15,0x4a,0xc4,0x74,0x54,0x7e,0xbd,0x57,0xa5,0xd8,0x16,0x00,0xac,0x35,0x4c, - 0xcb,0x8a,0x18,0x7c,0x90,0x76,0xc7,0xc8,0x04,0x2d,0x6a,0xe9,0xcb,0xca,0x8e,0x41, - 0xa9,0xb8,0x6d,0x2c,0x8d,0x50,0x04,0x6d,0x8c,0xd6,0xb5,0x61,0xfa,0x63,0x20,0xec, - 0x68,0x64,0x36,0x88,0x88,0x54,0x98,0x83,0x5c,0xe1,0x2a,0xc3,0xb6,0x65,0xeb,0x3f, - 0xa2,0x50,0xdc,0xbe,0xcf,0x68,0xaf,0x0c,0x0c,0x1a,0x28,0xea,0x23,0xeb,0xd2,0x44, - 0xcd,0x44,0x02,0x73,0x60,0x08,0xbf,0x8c,0x39,0xb1,0x46,0xbd,0x3a,0x35,0xc4,0x1f, - 0x3a,0x64,0x23,0x1c,0x3d,0xb9,0x44,0x95,0x1e,0x2c,0xfe,0xa8,0xcd,0xd5,0xfa,0x93, - 0x82,0x04,0x2c,0xd9,0xdf,0xfd,0x14,0xba,0xbb,0xd8,0xd7,0xed,0x61,0x07,0x87,0x1a, - 0x05,0xd0,0x92,0x12,0x56,0xf5,0x87,0x76,0x27,0xce,0xd0,0xd3,0x54,0x22,0x93,0x90, - 0x6e,0xc4,0xbe,0xd3,0xfc,0x99,0x5b,0xfd,0x87,0xbb,0xc9,0xd6,0x32,0xb0,0xfc,0x72, - 0xaa,0x74,0x50,0x41,0xcd,0xcf,0xdc,0xf2,0x85,0xc8,0x74,0x88,0xa2,0x47,0xb1,0xbb, - 0xf1,0x57,0x49,0x4d,0xb2,0x6c,0x35,0x33,0x3a,0x34,0xd9,0xa3,0xe3,0xf7,0x44,0x36, - 0x1a,0x78,0x44,0x47,0x25,0x22,0x71,0x05,0xbf,0xdf,0x34,0xac,0xa6,0x66,0x35,0x38, - 0xeb,0x7c,0xec,0x67,0x81,0x64,0x38,0xb0,0x32,0xea,0x18,0xde,0x1c,0xfc,0x9a,0xf5, - 0xfa,0xdd,0x28,0xa4,0x0d,0x18,0xdf,0xad,0x68,0x9d,0x81,0x7a,0x61,0x2c,0x99,0x59, - 0x1e,0xdf,0x6f,0x01,0xe4,0x0e,0xef,0x6a,0x5b,0x3c,0x39,0x60,0xe1,0x24,0x2d,0x69, - 0xbf,0x5f,0x3f,0x52,0xa2,0x98,0xa9,0xf5,0x9d,0x4a,0xa2,0xd9,0x9f,0x7d,0x32,0x63, - 0xb8,0xfc,0x90,0xfd,0xf9,0xba,0xa7,0x89,0xf0,0x49,0x82,0x71,0xa2,0x51,0xb0,0x89, - 0xb2,0xe0,0x09,0x02,0x57,0x8a,0x88,0xe9,0x56,0x5a,0xd6,0xb7,0xb8,0x32,0xf1,0x76, - 0x27,0x9c,0x9a,0xc9,0xdb,0xdc,0xf2,0xa6,0xaf,0xcc,0x6d,0x99,0xbb,0x6e,0x60,0x37, - 0xbe,0x86,0x34,0x67,0x94,0x5a,0xfc,0x97,0x21,0xb6,0xf0,0xa7,0x2a,0xd4,0x1b,0x30, - 0xa4,0xa9,0x16,0xd9,0xa2,0x49,0x33,0x61,0xc4,0xf0,0xd0,0x4c,0xf0,0x19,0xab,0xc2, - 0xb6,0x6d,0xb8,0x71,0xdb,0xd2,0x22,0x6e,0xdb,0x5c,0x89,0x25,0xf1,0x2c,0xdb,0x02, - 0x4d,0xb9,0xab,0xa5,0x29,0xd7,0x96,0x4c,0xaa,0xfc,0xb4,0xf9,0x54,0x54,0x4f,0xa3, - 0x5e,0x24,0x89,0xe2,0x88,0xdc,0x9a,0x27,0x5e,0x74,0xb1,0x41,0xd2,0x9b,0x55,0x01, - 0xf1,0x10,0x1e,0x0e,0xd5,0x2c,0x68,0x75,0x33,0xdf,0x91,0x9e,0xb1,0xc1,0x9f,0x4b, - 0x67,0x1c,0xfc,0xbb,0xd4,0xee,0x2e,0xe0,0x65,0x53,0xe5,0x2c,0x4e,0xd4,0x50,0xed, - 0x0e,0x6a,0x93,0x03,0x85,0x06,0x6c,0x7a,0x3b,0xf8,0xb4,0xae,0xc1,0xe6,0x62,0xe1, - 0xbe,0x6f,0x3f,0xf1,0xdb,0x53,0x1a,0x72,0xc0,0x39,0x8d,0x9f,0x7a,0x62,0x63,0xa3, - 0xba,0xc0,0x1f,0xda,0x5f,0xde,0xe8,0xaf,0x1e,0x87,0x2a,0x26,0x99,0x2c,0x30,0xa1, - 0xd5,0x1b,0x48,0xfa,0xac,0x65,0x7d,0x19,0xe4,0xe4,0xa2,0xfa,0xa9,0xd9,0xa9,0x7d, - 0x17,0xdf,0xb9,0x93,0x60,0xae,0x05,0x5a,0xfa,0x90,0xe0,0x96,0xf4,0x10,0x61,0x71, - 0xcd,0xd5,0x22,0xbd,0x4c,0x62,0x5e,0x11,0x7c,0xb4,0x15,0xfe,0xed,0xba,0x4e,0x4b, - 0x45,0x98,0xf0,0x5d,0x29,0x18,0x18,0xdd,0x31,0x73,0x50,0x20,0x31,0x80,0xd3,0x62, - 0x42,0x3b,0x97,0x19,0x93,0x4c,0xc2,0x34,0xef,0x4e,0x5e,0x0d,0xfa,0xe7,0x88,0x15, - 0x5a,0x94,0xb4,0x7b,0x53,0x54,0x51,0xd9,0xa9,0x98,0xed,0xe9,0xdc,0x78,0x63,0xc0, - 0x4d,0x28,0xea,0xf2,0x16,0xac,0x89,0xa6,0xf9,0x78,0x4a,0x0f,0xb8,0xa0,0x85,0xdf, - 0x09,0xd1,0x9c,0xfa,0x5d,0xf0,0x03,0x46,0x6c,0x9a,0x9f,0xfc,0x31,0x3e,0x91,0x87, - 0x0c,0x91,0xa1,0x73,0x58,0x3f,0x39,0x44,0xd7,0x06,0x38,0xb0,0x14,0x26,0x1b,0x73, - 0x75,0xe7,0xb4,0x44,0xb2,0x1b,0xdc,0x08,0x21,0x69,0x53,0x0c,0x42,0x65,0x0b,0x72, - 0x42,0x2d,0x6d,0x3a,0xef,0x82,0x24,0x25,0x39,0x15,0x09,0xa1,0x14,0x08,0x79,0x86, - 0xe7,0x5e,0x92,0x60,0x8b,0x9a,0xde,0x54,0xf5,0xc6,0x8c,0x14,0xc7,0x9e,0x48,0xe5, - 0x24,0x30,0x67,0x7e,0x14,0x82,0xae,0xdc,0x5b,0x7f,0xc1,0x4d,0x03,0x34,0x51,0xc2, - 0x7e,0xb1,0x28,0xbf,0x37,0x60,0x20,0x3e,0xe2,0x6d,0x5a,0x5c,0xfe,0xcc,0xb2,0xcd, - 0x33,0x34,0x99,0x7a,0x55,0xec,0x04,0xfe,0xe0,0xd2,0x52,0x69,0x57,0x5c,0xab,0xe1, - 0xd9,0xaa,0x48,0x3f,0x4e,0xb7,0xce,0x6d,0x75,0xd0,0xb4,0x44,0x61,0x38,0x6a,0x22, - 0xef,0x33,0x29,0x3d,0x6e,0x6e,0xd2,0x9f,0x06,0xab,0xb2,0xf1,0xc0,0xe6,0x3e,0x47, - 0xa2,0x34,0xae,0xb8,0x58,0x89,0x60,0x5b,0x4c,0xf3,0x6a,0x2c,0x52,0x81,0xdb,0x51, - 0x7c,0x5b,0xfa,0x60,0xe6,0x15,0xbb,0xf4,0x7a,0xfe,0xf0,0xeb,0x0e,0x7e,0x77,0x7a, - 0x8b,0x5b,0xa5,0xd4,0x83,0xb4,0xb5,0x5b,0x2f,0x6c,0xc4,0x69,0x44,0x50,0xf3,0x70, - 0x3d,0x3c,0xa5,0xcf,0xcc,0xf8,0x89,0x8a,0xe8,0xb2,0x05,0x2b,0x14,0xb3,0xa8,0x92, - 0x27,0xf5,0xbb,0xd8,0xb5,0xfd,0x47,0x50,0xe3,0x24,0x34,0xc2,0x53,0x90,0xdd,0x9e, - 0xb2,0xcc,0x16,0xd6,0xca,0x75,0x6a,0x21,0xf1,0x3f,0xe2,0x2f,0xed,0x35,0x9c,0xdd, - 0x6c,0x22,0x1f,0x2d,0xcd,0x9a,0x78,0x29,0xc5,0x59,0x9b,0xbd,0x95,0xdc,0x9b,0x3a, - 0xf3,0x62,0xad,0xd4,0x3b,0x81,0x09,0x77,0x69,0xab,0x69,0x18,0x03,0x14,0xc3,0x60, - 0x5b,0x74,0xee,0x93,0x35,0x48,0x4f,0x0a,0xa1,0xd6,0xc2,0x80,0x47,0x1a,0x4f,0xee, - 0xf0,0xf2,0xe6,0x2b,0x46,0x94,0x22,0xba,0x84,0xba,0x8e,0x60,0xa6,0x57,0x5a,0x31, - 0xd8,0xda,0x1b,0x78,0x06,0x6f,0xa8,0xd5,0x4a,0xbc,0xa2,0x8d,0x74,0x83,0x6f,0x6a, - 0xf1,0xf5,0x2f,0x0c,0x6c,0xfd,0x93,0x3d,0x2a,0x7d,0xcc,0x95,0xa3,0x9b,0xb6,0xe2, - 0x8e,0x71,0xb5,0xf4,0xb5,0xf9,0x17,0xb6,0x34,0x07,0x20,0x7c,0xee,0x52,0x92,0x41, - 0xb4,0x27,0xc3,0xa4,0x60,0xad,0xe6,0x97,0xc9,0x68,0x10,0x4e,0x0c,0x3c,0x85,0x5b, - 0x25,0x9e,0xc8,0x08,0xf5,0x7a,0x33,0x4d,0x97,0x7a,0x9a,0xd7,0xc4,0x6a,0x39,0x65, - 0x05,0x94,0x47,0x16,0x8a,0x8e,0x27,0x7f,0xe1,0xde,0x76,0x44,0xc2,0x5d,0x5a,0x39, - 0xc6,0xd3,0xfe,0xbf,0xba,0x00,0x0a,0x27,0x27,0xc2,0x32,0x2b,0x57,0xfd,0x97,0x54, - 0x97,0xcc,0x82,0xf5,0xf5,0xc5,0x33,0x4f,0x04,0x78,0xd6,0x7c,0xe2,0x4f,0x09,0x57, - 0x06,0xd0,0xd9,0x61,0xe3,0x71,0x87,0xf1,0x32,0x72,0x38,0xd1,0x75,0xbb,0x9b,0x02, - 0xa3,0x56,0x2f,0x03,0x0e,0x7f,0x17,0xdb,0x04,0x7f,0x61,0x2a,0x1d,0x34,0xfb,0x14, - 0xf5,0x25,0x89,0x35,0x04,0x19,0x76,0x3f,0xfd,0x4c,0x06,0x97,0xc4,0x5f,0x56,0x0d, - 0xf3,0xf5,0x92,0xb1,0xad,0xcf,0x5c,0xb5,0x73,0x58,0x31,0xda,0x8f,0x48,0x0c,0x28, - 0xf4,0x08,0xb3,0x2c,0x0d,0x55,0x7a,0x07,0x54,0x8b,0x8f,0x46,0xde,0x6e,0x04,0xfb, - 0x74,0x5b,0x53,0x5c,0xa3,0x07,0x85,0xf1,0xaa,0xeb,0x08,0xd3,0x86,0x96,0x3c,0x81, - 0x52,0x4d,0x58,0x4c,0xdb,0xeb,0x1c,0x34,0x15,0xb7,0xab,0xc8,0x86,0x56,0xa9,0x0a, - 0xbc,0xa6,0x67,0xef,0x46,0xc4,0x30,0x90,0xc0,0xe5,0x13,0x1c,0xf6,0x88,0x8b,0x8b, - 0xfd,0xf1,0xd9,0x2c,0x59,0xb7,0xc2,0x82,0xd6,0xf7,0xcb,0x07,0xd5,0xdc,0x6e,0xb1, - 0xb0,0x49,0x46,0x4a,0x29,0x2d,0xce,0x6b,0x38,0xcb,0x52,0xc5,0x54,0x6c,0xfd,0x69, - 0x0a,0x7b,0x13,0xb9,0xa3,0x50,0xc2,0x9a,0x70,0x7b,0x72,0x27,0x89,0x4b,0x32,0xe3, - 0x11,0x14,0x22,0x3a,0x8f,0x6a,0xe1,0x26,0x9f,0x00,0x51,0x29,0x5f,0x4a,0x49,0xe6, - 0xc6,0xc9,0x4c,0x8b,0x26,0x43,0x13,0x2e,0x51,0x97,0xe2,0xeb,0x56,0xa0,0xc3,0x34, - 0x6b,0xdf,0x37,0x7d,0xe7,0x1e,0x1d,0x5d,0x59,0xd9,0x17,0x78,0x24,0x4c,0x3d,0x3c, - 0x16,0xc5,0xe5,0x2e,0x96,0x78,0xf8,0xfa,0xbd,0xea,0xba,0x2c,0xbb,0x9d,0x40,0x2c, - 0x35,0x51,0xe7,0x0b,0x1f,0x5f,0x3a,0x27,0x4b,0x22,0x12,0xc1,0x95,0x5a,0x7c,0x5f, - 0x6e,0x59,0x4e,0x9b,0x9a,0x07,0xc6,0x41,0xcb,0x6e,0x6e,0x96,0x26,0x48,0xec,0xbe, - 0x55,0x72,0x6f,0xa9,0x0c,0x95,0x46,0x3c,0xf7,0x46,0x48,0xea,0x9a,0xe2,0xb8,0x24, - 0x49,0x9a,0x96,0x26,0x95,0xf3,0x52,0xa0,0x8a,0x8d,0x99,0x31,0xec,0x64,0xd9,0xa6, - 0x42,0xde,0xaf,0x98,0x93,0x71,0xbc,0x86,0x29,0xc8,0x32,0x7b,0x3f,0xdf,0xd1,0x26, - 0xa7,0xbc,0x94,0xa5,0xa9,0x59,0x23,0x90,0xd0,0xa3,0x51,0x26,0xc3,0x63,0x17,0xa3, - 0x2b,0xaa,0xe4,0x0b,0x08,0x64,0x5e,0xb9,0x2e,0x01,0x72,0xad,0x56,0x94,0x7c,0xa1, - 0x95,0xad,0xd6,0xc3,0x5b,0xbd,0x95,0x52,0xf7,0x71,0x53,0x0d,0xf5,0x1f,0x28,0xea, - 0xb6,0x97,0xea,0x4e,0xe7,0xbd,0x7c,0xd2,0xa4,0x7f,0x2b,0x45,0x20,0xbd,0x48,0x25, - 0xb1,0x1c,0xae,0x06,0x3d,0xe5,0x45,0x26,0xa8,0x3b,0x78,0x98,0x04,0x19,0xd4,0xdd, - 0xa0,0xf5,0x08,0xc4,0x51,0x65,0xba,0x70,0xb4,0x23,0xa3,0xd1,0x27,0xaf,0xa5,0xee, - 0x83,0x47,0x4a,0xe9,0xa3,0x3b,0xe4,0x0e,0xba,0x85,0x95,0xa6,0x72,0x5d,0xfd,0x37, - 0xcc,0xd8,0xaa,0x15,0x58,0x93,0x06,0x19,0x06,0x57,0xbc,0xf4,0x91,0x3a,0xb2,0xd6, - 0x0d,0xc0,0x35,0x0d,0x94,0xf7,0xe6,0xcd,0x27,0xde,0xfb,0xd3,0xc5,0xa2,0x56,0xf3, - 0xf9,0xc8,0xcb,0x9d,0xe6,0xba,0xf5,0xdb,0xae,0x49,0x3e,0xc3,0xf8,0x9f,0xe8,0xa1, - 0x6f,0x4c,0x7f,0xa0,0x92,0xa8,0xc8,0xaa,0x0c,0x9f,0x08,0x11,0x71,0x45,0xec,0x09, - 0x53,0x15,0xd2,0xb2,0xe2,0xa0,0x81,0xd1,0x3d,0x01,0x6e,0x98,0x11,0x45,0x7b,0x2d, - 0x04,0x26,0x38,0x08,0x13,0x04,0x45,0xe9,0x22,0xa4,0x6b,0x0b,0x74,0x4d,0x60,0x4f, - 0x9f,0xd1,0xbe,0x77,0x1e,0x9a,0x2d,0x4c,0x1d,0x17,0x67,0xc3,0x56,0x48,0x1b,0x77, - 0x0d,0x25,0xb2,0xf5,0x47,0x0e,0x4f,0x32,0x09,0x1d,0x63,0xf4,0x3e,0xb5,0xfe,0x73, - 0xff,0xdd,0xdb,0x86,0x44,0x0e,0xa0,0x00,0x18,0x51,0x21,0x1f,0xfa,0x78,0x89,0xa4, - 0x58,0x92,0x70,0x6a,0xdb,0x85,0xc4,0xe8,0xba,0x5b,0xbc,0x8b,0xab,0xa3,0xad,0xfb, - 0x86,0x42,0x25,0x95,0x0b,0x39,0xec,0x45,0x17,0x7a,0xf3,0x59,0x32,0x5d,0xbd,0x3e, - 0xfa,0xb6,0x2d,0xc9,0xcb,0xb1,0xfe,0xcb,0x7b,0x5e,0x67,0x23,0xe6,0x65,0xac,0xdb, - 0x93,0xf9,0xca,0x1c,0xc4,0xf5,0x55,0x7d,0x0e,0x35,0x9e,0x27,0xfd,0xde,0x20,0xcb, - 0x59,0xad,0x43,0x08,0xe3,0x27,0xc5,0x9f,0xc5,0x62,0xb5,0x6a,0xd1,0x2e,0xdf,0x54, - 0x66,0x4b,0x22,0x4d,0x74,0xb8,0x89,0xea,0xe5,0x9b,0xb3,0xb0,0x78,0xa3,0x6d,0x2a, - 0x82,0x9f,0x07,0xac,0xd7,0xb2,0x66,0x00,0x55,0xdc,0x0e,0x0a,0x81,0x67,0x08,0x76, - 0xbd,0x5e,0xb5,0x86,0x39,0x09,0x4b,0x22,0x62,0x68,0xe3,0x33,0x39,0xf9,0x56,0x2d, - 0x9b,0x28,0xd5,0x20,0x36,0xb1,0xb4,0xa6,0x4c,0x4f,0x8d,0x22,0x00,0xc1,0x55,0x85, - 0x39,0xed,0xa7,0xda,0xbe,0x60,0x85,0x47,0x92,0xba,0xe3,0x79,0xb5,0x5f,0xf7,0x07, - 0x53,0xbd,0xb6,0x2d,0x74,0xbf,0x4b,0x98,0x09,0x6a,0xbb,0xbe,0x92,0x52,0xf9,0xf2, - 0x08,0xe6,0x2e,0x36,0x96,0x8b,0x23,0x64,0x96,0x37,0xad,0x80,0xd9,0x50,0x8d,0x57, - 0x5a,0x7a,0x23,0x55,0xc7,0x23,0x50,0x10,0x89,0xc7,0x9a,0x28,0xab,0xb3,0x9f,0x1a, - 0x4b,0x45,0xb4,0x36,0x99,0xed,0xc3,0x0a,0x04,0x33,0x92,0xcb,0x22,0x47,0x95,0x19, - 0x1f,0xa4,0xc0,0xe6,0xe6,0x32,0x5c,0x33,0x9e,0x8c,0x24,0x52,0x75,0xe1,0x24,0x9e, - 0x67,0x03,0xd5,0xdb,0x42,0xa7,0xe7,0x14,0x87,0xb1,0x49,0x45,0x3b,0xb2,0x00,0xe0, - 0x2b,0x19,0x63,0x0c,0xbd,0x7c,0xb1,0x20,0x99,0x7d,0x19,0xfc,0x6d,0xd2,0x77,0x31, - 0x50,0xa3,0x92,0xf2,0xee,0x94,0x97,0x79,0xf4,0x4e,0xad,0x7f,0xc4,0x72,0x55,0x6c, - 0x54,0x4e,0x97,0x69,0x74,0xdb,0x18,0x5f,0x3e,0x12,0xf7,0xfe,0x1d,0x3c,0xb7,0x1e, - 0xc1,0x76,0xee,0x6b,0xea,0x3f,0x15,0x56,0x6e,0xc5,0x2d,0x25,0x2a,0x1a,0xf1,0x99, - 0x9b,0x2b,0xb4,0x8f,0x9b,0x9b,0xe3,0xcb,0x4a,0x29,0x67,0xa9,0x59,0xc5,0x54,0x4b, - 0xa6,0x6e,0x89,0x42,0xed,0xd9,0xbe,0x57,0x25,0x59,0x02,0x52,0x1c,0xe3,0x32,0x96, - 0x69,0x09,0x5d,0xc7,0x5e,0xef,0xe5,0xc7,0xbc,0x63,0x0d,0x02,0xb9,0x48,0xbc,0x92, - 0x6c,0xe3,0xcb,0x0e,0x6b,0xbf,0x5a,0xb2,0x2c,0x49,0x69,0xe5,0x85,0x40,0x37,0xf5, - 0x3a,0x46,0xcd,0x41,0xbc,0xe9,0x4c,0x42,0x97,0x4e,0xa7,0xd2,0x89,0x44,0x5c,0xc1, - 0x0c,0x8b,0x43,0x0a,0xe1,0x1d,0xb5,0xb0,0xea,0xac,0xa2,0xbd,0xf1,0x99,0xb3,0xd1, - 0xd3,0x69,0xdf,0x25,0x3b,0xcf,0x9a,0x25,0x91,0xd1,0x3f,0x57,0xf0,0xd9,0xb9,0x9d, - 0x0a,0x3a,0xe0,0x97,0xa6,0x80,0xcc,0x19,0x2b,0x5a,0x72,0xf3,0xd3,0xbf,0x74,0xe8, - 0xb1,0x72,0x33,0xa8,0x92,0x5e,0x2e,0xe6,0x1a,0xd8,0x61,0x96,0xb6,0xa5,0x54,0x8f, - 0x99,0x45,0x7f,0x1a,0x98,0x7e,0x69,0xe3,0xf5,0x53,0xe5,0xce,0x34,0xf9,0x2b,0x7c, - 0x4c,0x09,0xa8,0x74,0x51,0x12,0x56,0x1f,0x55,0xac,0x3d,0x92,0xf1,0x99,0x4e,0x27, - 0x3c,0xb0,0x6c,0xce,0xe0,0xcf,0xba,0x3a,0x65,0x83,0x49,0x40,0x87,0xfa,0xec,0x7f, - 0xbb,0x97,0xe1,0xde,0x9d,0xb8,0xe8,0x1e,0xf4,0x8d,0x59,0xcb,0x68,0xcc,0x9e,0x3c, - 0x61,0x18,0xa8,0x61,0xc2,0x70,0xac,0xa5,0x3c,0xd5,0xc9,0xc7,0xe9,0x4f,0x57,0x5b, - 0x20,0x66,0x52,0x5e,0x3b,0xbc,0x75,0x01,0xdf,0xfe,0x62,0xa7,0xf9,0x05,0x2b,0x40, - 0x6d,0xbb,0x4c,0xbb,0x6f,0xbc,0x15,0xe0,0x4b,0x68,0xd2,0x08,0x3e,0x64,0x46,0x7a, - 0xd1,0x01,0x50,0x49,0x21,0x50,0x42,0xd6,0x4b,0x86,0xa7,0x6e,0x1c,0x64,0x37,0x5a, - 0x3e,0xfa,0x06,0x78,0x9d,0x85,0x0f,0x5c,0x46,0x7d,0xcd,0x8e,0x37,0x09,0x1e,0x2e, - 0x72,0xa8,0xc3,0xb5,0xf1,0x15,0x35,0xd6,0x93,0x15,0x60,0x9d,0x21,0x62,0xe9,0x20, - 0xc9,0xd1,0x3b,0xc6,0xb1,0x31,0xfe,0x29,0x56,0x32,0xbd,0xad,0xbe,0xa5,0x25,0x16, - 0x8b,0x15,0x35,0xb5,0x71,0xa9,0xa9,0xc7,0x4f,0x32,0x25,0xd3,0x29,0xc4,0x12,0x6f, - 0xe6,0xd3,0x82,0xc8,0xd3,0x73,0x73,0xd3,0x74,0x9f,0x58,0x19,0x9b,0x8a,0x67,0xdc, - 0x0f,0xa8,0x08,0x6e,0xc9,0xf6,0x45,0xc7,0x70,0x3e,0x03,0x73,0xf7,0xc5,0x62,0xda, - 0x20,0x5f,0x59,0xc7,0xb4,0x04,0xa5,0xf2,0xb1,0xae,0x98,0x29,0xe6,0x3c,0xd8,0x86, - 0xa8,0xc4,0x2d,0x0d,0xf3,0x46,0x86,0x1f,0xca,0xeb,0x48,0x18,0xea,0xa8,0xaa,0x66, - 0x20,0xeb,0xe8,0x9e,0x08,0x9a,0x18,0x6f,0xbe,0x69,0x92,0x28,0xc0,0x74,0xfa,0xd9, - 0x8b,0x89,0x3c,0x4e,0x54,0xad,0x18,0xe8,0x34,0xb3,0xac,0x46,0xbe,0x55,0xa6,0xa0, - 0x3f,0x86,0x65,0xc6,0xaa,0xe3,0x0f,0xcb,0xc3,0x40,0x18,0x0d,0x5d,0xef,0xa1,0x41, - 0x0c,0x6b,0xc3,0x99,0x77,0x9e,0xe8,0xc3,0xc4,0xab,0x92,0x22,0xa4,0x1b,0x5d,0x4d, - 0xfd,0x9a,0x13,0x73,0x71,0x49,0x8c,0x81,0xef,0x92,0xaf,0xe7,0x23,0x6f,0x4e,0xca, - 0x8b,0xa9,0xdf,0xb8,0xef,0x04,0x35,0x11,0x51,0x0c,0xf4,0xa0,0xc1,0x22,0xa4,0x56, - 0xcb,0x35,0x33,0xdc,0x28,0xdd,0xf4,0x6e,0x59,0xd9,0x67,0xf4,0x34,0x52,0x67,0x79, - 0xeb,0xff,0xb6,0x20,0xb4,0x4c,0x57,0xeb,0x17,0xc7,0xeb,0x9f,0x1f,0xfb,0xb7,0xc4, - 0x18,0xc4,0x68,0xfd,0x6a,0xe4,0xb8,0x37,0x72,0x76,0xfd,0xce,0x80,0xf3,0x59,0xbb, - 0x19,0xf7,0xa8,0x42,0x48,0xc0,0x95,0xe3,0x07,0x7e,0x89,0x2c,0x7f,0xed,0xe7,0x6a, - 0x0e,0x4f,0xad,0x63,0x40,0xb8,0xa6,0xe1,0x50,0x31,0x08,0x83,0x52,0x6e,0x55,0xb8, - 0x96,0xee,0x0e,0x70,0xe6,0x9d,0xa0,0x6b,0xd6,0xe0,0xb0,0x96,0x07,0x54,0xdb,0xd3, - 0x17,0x33,0x7a,0x15,0xba,0x5c,0xc7,0xb8,0x8e,0x77,0x18,0xa9,0xa4,0x03,0xdb,0x13, - 0xe4,0x82,0x6c,0x88,0xca,0x4a,0x38,0xca,0x91,0x6d,0xf8,0xde,0xad,0x27,0x63,0x41, - 0xb5,0x37,0xee,0x9d,0x01,0xdb,0xfe,0xbf,0x8f,0x5c,0x77,0x1e,0xc9,0x7c,0x36,0x8c, - 0xfb,0x6f,0xea,0x6d,0xf2,0x3a,0x35,0x9b,0xfc,0xeb,0x7e,0x7e,0xd5,0x1d,0xe0,0x9a, - 0x36,0xac,0xfe,0x13,0x7b,0xe2,0xaa,0xa2,0x2d,0xe9,0x1d,0x39,0xa9,0x4e,0x10,0xd6, - 0xba,0xb3,0x41,0x39,0x3d,0x5c,0x5f,0x57,0xce,0xf1,0xbb,0x28,0x66,0xc2,0x17,0xbc, - 0x83,0x05,0xcb,0x0a,0xaa,0xff,0x6d,0x6d,0x31,0xd1,0xd5,0xcd,0x16,0xd7,0xca,0x2f, - 0xb2,0x0c,0xc1,0x3f,0xa4,0xb2,0xf8,0x0e,0xb9,0x2e,0x69,0xa8,0xe1,0xfa,0x3a,0x9d, - 0x19,0x07,0xa8,0xba,0x4b,0x46,0x46,0x06,0xff,0xc0,0xf8,0xce,0x61,0x97,0xed,0x7a, - 0xce,0x11,0x6b,0xeb,0x8a,0x1d,0xbc,0xef,0xf1,0x39,0x32,0xf5,0x3e,0x51,0x8a,0x7c, - 0x99,0xcd,0x88,0xce,0xf5,0xd9,0x3d,0x05,0x6a,0xcf,0x0d,0x13,0x39,0x61,0xda,0xc1, - 0xc7,0xef,0x49,0x77,0x2a,0x97,0x69,0xf3,0x93,0x4a,0x42,0x60,0x10,0x10,0x21,0x18, - 0x91,0x5a,0x4a,0x85,0x96,0x91,0x9c,0xd1,0x7e,0x7f,0x75,0xcb,0x94,0x5b,0xbf,0xbe, - 0x36,0xd5,0x48,0x35,0x80,0x3a,0x46,0xd6,0x49,0x39,0xfa,0xd7,0x14,0xb5,0x22,0x2a, - 0x22,0xf4,0xa9,0xa3,0x02,0x37,0x27,0xbd,0xca,0x25,0x5f,0x80,0x42,0xb1,0xd7,0x0b, - 0xa8,0x8d,0xb8,0xd5,0x11,0xf9,0x94,0x4e,0xb8,0x18,0x6d,0xe1,0x27,0xb7,0x30,0x2f, - 0xae,0xb4,0xea,0xc6,0xf5,0x63,0x0e,0xa0,0xed,0x34,0x5b,0x26,0xfa,0xd7,0xcd,0xc6, - 0xf3,0x1d,0x01,0x12,0xaf,0x3a,0xd8,0xbf,0xcf,0x56,0x4f,0x18,0x4f,0xd5,0x90,0x05, - 0x0b,0xaa,0x4c,0xaf,0x50,0x5f,0xd1,0x1c,0xeb,0xff,0x2b,0x0b,0x13,0x99,0x0b,0x71, - 0xfb,0xc1,0x15,0x05,0x17,0xad,0x58,0x9e,0x58,0x54,0x30,0x9b,0x52,0xe7,0x60,0x6a, - 0x15,0x1f,0x65,0x9c,0xd3,0xad,0x8c,0xe4,0x65,0x4c,0x94,0x1f,0xa9,0x89,0xb2,0x7b, - 0x2f,0x19,0x83,0x03,0xba,0x4c,0x7d,0x94,0x55,0xcb,0x71,0xd9,0x57,0x28,0xe8,0x94, - 0x60,0x11,0xad,0x2f,0x8e,0xe5,0xa2,0x3d,0x6e,0xe8,0xe7,0xfc,0x7e,0x73,0x31,0x86, - 0x60,0xd7,0x3d,0x69,0x07,0x80,0x88,0xe8,0x54,0xd0,0x92,0xf4,0x67,0x1b,0xca,0x15, - 0xb8,0xf5,0x2f,0xb5,0x8c,0x9b,0x1b,0x9b,0xd2,0x7d,0x46,0x8b,0x35,0x79,0x22,0x0b, - 0x82,0xdb,0xa1,0x8d,0x17,0x5b,0x72,0xcf,0xeb,0x25,0x3d,0x41,0x6b,0x87,0xdf,0x8b, - 0xd9,0x70,0xf0,0x72,0xe3,0xff,0x0f,0x06,0x19,0xb5,0x23,0x9e,0xf7,0x01,0x00, + 0xd4,0x72,0xdb,0x99,0xe6,0xe2,0xf0,0x9a,0xc3,0x89,0x66,0xe0,0xf6,0x83,0xa5,0x43, + 0x6b,0x2a,0x28,0x29,0x5d,0x9e,0x91,0x12,0x5e,0xfd,0xa5,0x53,0x91,0x77,0x5a,0x1d, + 0xab,0xdb,0x84,0x06,0xe4,0x16,0x54,0xbc,0x66,0xcd,0x09,0x18,0xde,0x24,0xa8,0x28, + 0xe1,0xcb,0x5f,0x01,0x3f,0xfc,0x41,0xc3,0xc0,0xf9,0x83,0xa6,0x2e,0xe8,0xfe,0xbb, + 0x6f,0xfb,0x69,0xb9,0xcc,0xc5,0x07,0x7e,0xc6,0xac,0x69,0x44,0x37,0x73,0xdd,0x74, + 0x1f,0xcf,0x8b,0xb0,0xd8,0x14,0xbb,0xc4,0x71,0xdd,0x8c,0xb0,0x5c,0x8e,0x8b,0x02, + 0x07,0xb4,0x7e,0x8b,0xe7,0x3e,0x09,0xd6,0x6b,0x0f,0x87,0xd5,0x51,0xc4,0xf3,0xcd, + 0x66,0xbb,0xde,0x11,0x1c,0x96,0xb4,0x86,0x78,0x0e,0x01,0x6c,0x01,0x12,0x09,0x88, + 0x64,0x59,0x3c,0x0f,0xd2,0x6d,0x0e,0x2f,0x89,0xd3,0x0f,0x11,0xc0,0x15,0x58,0x83, + 0xb0,0xf2,0x97,0x3c,0xea,0x47,0xc0,0x58,0x3c,0xcf,0x37,0x61,0x14,0x46,0x38,0x3c, + 0x13,0x56,0xc7,0xf3,0x6c,0xb7,0xdb,0xfa,0x04,0x61,0x65,0x07,0xda,0x4a,0xd8,0x50, + 0x04,0xc5,0x56,0x61,0xa2,0xf0,0xd4,0x78,0xf5,0x97,0xe3,0x81,0x3c,0xc8,0x01,0xa7, + 0xf8,0x81,0xe4,0xcd,0x39,0xf6,0x1c,0xbf,0x7d,0x77,0xd6,0xf2,0x7f,0xb6,0x4f,0xc9, + 0xb3,0xbf,0x59,0x06,0xbb,0x65,0x18,0x2d,0x57,0xde,0x6e,0x91,0xcc,0xbe,0xce,0x7e, + 0xb7,0x82,0x9c,0x12,0xe7,0xb9,0x65,0x50,0x00,0xe3,0x6e,0xd6,0x94,0x0d,0x93,0x0c, + 0x3d,0x40,0x05,0x71,0x4e,0xd8,0xdb,0xa2,0x1b,0x30,0xc6,0xf7,0xfc,0xc8,0xcf,0xae, + 0x8c,0x41,0x66,0xf8,0x41,0x7a,0xe5,0x0d,0x6c,0x20,0x2d,0x82,0x2b,0x6f,0x76,0xe9, + 0xcb,0x8e,0xa4,0x37,0xde,0x04,0x64,0x1d,0x86,0xc1,0x95,0x37,0x21,0x79,0x09,0x0b, + 0xc9,0x49,0x4d,0x5e,0xb0,0x0e,0xf2,0x35,0x31,0xc8,0xf3,0x43,0x09,0x3f,0x18,0x50, + 0xb8,0x26,0xe1,0x26,0xda,0x7c,0x4e,0xa1,0xb7,0xc4,0x7f,0x57,0x21,0x52,0xf7,0x75, + 0xf6,0x4d,0x97,0x36,0xef,0x2e,0xa7,0xdf,0xd3,0x7a,0x1f,0xa7,0x0d,0xcb,0x81,0xb9, + 0x72,0x26,0xa9,0x08,0xdb,0xd3,0x3a,0xf6,0xbe,0xce,0x50,0x6b,0x3b,0xf7,0x0c,0xe9, + 0x1b,0x15,0xae,0x80,0x77,0x81,0xbb,0xc1,0x25,0xf9,0xff,0x1d,0xb9,0x88,0x7d,0xcf, + 0xfb,0xcd,0xaf,0xb3,0xb4,0xc9,0x3f,0xba,0xa2,0xa9,0xe5,0x38,0x6a,0xdf,0xbf,0xf5, + 0x57,0x61,0xe4,0xf0,0x0f,0x2e,0xa0,0x72,0x8f,0x74,0xe9,0x92,0xb6,0x2d,0xc1,0x55, + 0x13,0xcb,0xa7,0x7f,0x80,0x7d,0x03,0xce,0x3f,0xfd,0xd9,0xd3,0xf2,0xef,0x9b,0xb4, + 0x11,0xcd,0x92,0x93,0x9a,0xbb,0x1c,0x18,0x2d,0x92,0x94,0x64,0x6f,0x7b,0xd6,0x1c, + 0xeb,0x3c,0x3e,0x11,0xf6,0x8c,0x2c,0x5d,0x24,0x3d,0xcb,0xd5,0x18,0x99,0xb8,0x48, + 0x5a,0x92,0xe7,0x12,0x5f,0x57,0x9e,0x16,0x4d,0x15,0xbf,0x78,0xed,0x7b,0x82,0xba, + 0x5c,0x94,0xcd,0xd9,0x7d,0x8f,0x0f,0x34,0xcf,0xa1,0x96,0x98,0xfb,0x88,0x93,0xc2, + 0x37,0xf6,0xb7,0x72,0x53,0x3f,0x3c,0x03,0xdd,0x1f,0x44,0xbc,0x89,0x90,0xb8,0xc0, + 0xdc,0x12,0xda,0x5b,0x92,0x9e,0x62,0xc1,0x24,0x8a,0x45,0xc3,0xaa,0xf8,0xd8,0xb6, + 0xc0,0x32,0xc2,0x21,0x29,0x41,0x08,0x60,0x2e,0x6f,0x49,0x86,0xbc,0x5b,0x79,0x11, + 0x54,0x26,0xaa,0x28,0xe0,0x85,0xe6,0x63,0x10,0x48,0xf6,0x4b,0x41,0x48,0x4c,0xf1, + 0xd2,0xb8,0xa0,0x8c,0x0b,0x14,0x6a,0x99,0x77,0x6a,0x8b,0x2b,0x9a,0x16,0xd9,0x4d, + 0x3a,0x03,0x06,0x6a,0xc1,0x42,0x1e,0x00,0x92,0x03,0xeb,0x72,0xca,0xdb,0x92,0x7c, + 0xc4,0x45,0x09,0xef,0x09,0x29,0xe9,0xbe,0x76,0xa9,0x80,0x8a,0xc7,0x19,0xd4,0x02, + 0x58,0xb2,0x27,0x6d,0x8c,0x37,0x68,0xfe,0xc4,0x3e,0xde,0xea,0x6f,0xe4,0x8c,0xc5, + 0x57,0x54,0xce,0x45,0xa2,0x05,0xae,0xf8,0x88,0x6a,0xc2,0x9b,0x92,0xe6,0x0e,0xee, + 0x51,0x2a,0x29,0x99,0xdd,0x70,0x2a,0x68,0x53,0xc7,0x5c,0xd0,0xec,0xed,0x23,0xe9, + 0xf1,0x4c,0xbe,0x97,0x92,0xc8,0xe1,0x5d,0xde,0xa7,0xd1,0x73,0xf8,0x69,0xdf,0x21, + 0x6a,0x71,0xdd,0xd4,0xf0,0x75,0xb6,0x3a,0xa0,0x03,0xeb,0x2a,0x5a,0x2b,0xf7,0x14, + 0x7b,0x7a,0xce,0xc9,0xe9,0xc9,0x60,0x3b,0x62,0x69,0x33,0xee,0x7c,0xa0,0x02,0x7a, + 0xee,0x82,0x04,0x78,0x66,0xa4,0xbd,0x8a,0xf8,0x22,0x60,0x25,0x9a,0xeb,0x24,0x94, + 0x25,0x6d,0x39,0xe5,0xf2,0x96,0x94,0xe4,0x7b,0xd0,0x7c,0x2d,0xa1,0x10,0x31,0x39, + 0x8a,0x26,0xb9,0x22,0x97,0x18,0x97,0xfb,0xb6,0xcc,0xaf,0xfc,0x43,0x9b,0x79,0x69, + 0xdf,0x35,0x9b,0x18,0xc9,0xe9,0x91,0xc7,0x2f,0x2f,0x36,0x43,0x95,0x81,0x2e,0x2c, + 0x32,0x34,0x32,0x2b,0x0e,0xe2,0xd8,0x76,0xc6,0xa9,0x79,0xb1,0x86,0x5d,0xbe,0xbe, + 0x9c,0x98,0xef,0x48,0x94,0x79,0x3d,0x87,0x68,0xd6,0xd4,0xdd,0x0d,0x55,0x93,0x8a, + 0x5d,0xfb,0x3e,0xc0,0x6d,0x77,0xc5,0x6d,0x2c,0x3b,0xed,0x0e,0x16,0x23,0xdc,0xd1, + 0x08,0x66,0x16,0xee,0xbd,0x33,0xb1,0x91,0x4f,0xb2,0x23,0xe3,0x72,0xa6,0x6d,0x68, + 0xaf,0x5f,0x08,0xd0,0x3d,0x28,0x36,0xf9,0xab,0x75,0x32,0xeb,0x2d,0x7e,0xeb,0x49, + 0xbd,0x0e,0x7a,0xab,0x5f,0x3b,0x47,0xea,0x56,0x4d,0xdd,0xf4,0x62,0x5b,0xfe,0x15, + 0xd4,0x65,0xb3,0x94,0xd1,0x44,0x22,0x46,0xf8,0xf2,0xba,0xa0,0xa9,0x8c,0x0f,0x28, + 0x3c,0x4b,0xdf,0x35,0xca,0xe3,0xf9,0x87,0x7c,0xf1,0xa7,0xec,0x5e,0x93,0xa0,0xf0, + 0x43,0xcd,0x6e,0xf0,0xd2,0x30,0xca,0xa4,0xff,0xab,0x08,0xad,0x3b,0x19,0x26,0x2f, + 0x3a,0xba,0x09,0xbd,0xf6,0xe6,0xfc,0x1c,0x54,0x9b,0x2b,0xc7,0xd1,0x90,0x24,0xea, + 0x68,0x39,0xdd,0x1d,0x7b,0xb2,0x85,0x31,0x29,0x09,0x64,0xd9,0x00,0xb4,0x5c,0x7f, + 0xd7,0x2e,0x5b,0x1d,0x53,0x03,0xed,0x43,0xae,0x56,0x1a,0xf6,0x68,0x08,0x92,0xf2, + 0xa1,0x47,0x40,0xf3,0x0f,0x3f,0x57,0x4d,0x7d,0x57,0x68,0x29,0x34,0xfa,0x8c,0xcf, + 0x2f,0x71,0xd2,0xa3,0x10,0x5a,0x25,0x7d,0x4d,0xa2,0x67,0x5e,0x83,0x8a,0x6a,0x6b, + 0x4f,0xaf,0x1d,0xb4,0x3e,0x00,0xa3,0xc2,0xb4,0xb8,0xf5,0x2a,0x1a,0xdb,0x9c,0x77, + 0xb5,0x39,0xd4,0x50,0xc7,0x42,0x11,0x67,0x47,0xda,0x38,0xc4,0x6e,0xd5,0xd4,0xd3, + 0x32,0xb1,0xa3,0xc7,0xa7,0x7c,0x96,0x10,0x8b,0x6e,0xc4,0x86,0x75,0xcf,0x86,0xc2, + 0x29,0x49,0x0a,0xe5,0x95,0xdd,0x69,0xd9,0x64,0x6f,0x26,0x49,0xc1,0x24,0x49,0x43, + 0x58,0xe1,0x05,0x94,0xd4,0xfd,0x5a,0x74,0xa6,0x07,0xc2,0xc3,0x36,0xfb,0x8c,0xb0, + 0xd0,0x63,0x41,0xeb,0xf6,0x28,0xfe,0x43,0x7c,0xb4,0xf0,0x8a,0x8e,0xef,0xbf,0x96, + 0xc6,0x44,0x4b,0x38,0x3f,0x4b,0x86,0x0d,0x26,0xeb,0x63,0x95,0x02,0x1b,0x4c,0x41, + 0x45,0x68,0xf9,0x5f,0x4b,0x0e,0x25,0x64,0xa2,0x9b,0x29,0x9d,0xc7,0x10,0xae,0xd9, + 0x8f,0x2e,0xa6,0x8f,0x52,0x9f,0x4a,0x0f,0x35,0xd5,0x62,0xe9,0x67,0x1e,0x65,0xf6, + 0xe3,0xbc,0x13,0xfa,0xb3,0xe6,0x28,0x70,0x49,0x05,0x11,0xc7,0xf9,0xf6,0x1b,0xe7, + 0xcb,0x2b,0x5e,0x1a,0x3b,0x5c,0xb2,0x82,0x3b,0xf4,0x6f,0xfe,0xc1,0xf9,0xbe,0x69, + 0x2a,0xb7,0xa9,0xdd,0xa2,0xc9,0x8e,0xdc,0x79,0xe6,0x34,0x87,0x33,0xf9,0xe0,0x2e, + 0xcf,0x58,0x53,0x96,0x0e,0xad,0x9d,0x8c,0xb4,0x82,0x9e,0xc0,0xe1,0x07,0x00,0xb1, + 0x70,0xbe,0xf9,0x56,0xb1,0x2f,0xee,0x4f,0x28,0xfa,0x2f,0x83,0x6e,0xda,0xdb,0x0c, + 0xd4,0xc4,0x73,0xf0,0x5f,0x0c,0xa6,0xca,0xe3,0x54,0xf4,0xfd,0x59,0x5e,0xc2,0xd9, + 0x3e,0x5d,0xde,0x4e,0x38,0x41,0xf4,0x9b,0xcb,0x3e,0x53,0x68,0x09,0x83,0x5a,0x2c, + 0x2e,0x32,0x5b,0xe5,0x94,0x89,0x0f,0x75,0xe9,0x65,0x60,0x5f,0xaa,0x12,0x5a,0xd4, + 0xc1,0xf6,0x6d,0x7f,0x55,0xb4,0x3d,0xa3,0x79,0x82,0x7f,0x5c,0x01,0x95,0x9c,0x11, + 0x80,0x47,0x8e,0x55,0xcd,0x63,0x06,0x2d,0x10,0xf1,0x8c,0x1e,0xca,0x2d,0x68,0x59, + 0x2e,0x2b,0x5a,0x4b,0x3f,0xf6,0xec,0x63,0xaa,0xb1,0xf4,0x0b,0xb6,0x58,0xf4,0x1e, + 0x21,0xb8,0xc4,0x89,0x1f,0x2f,0x0a,0x53,0x27,0x3e,0x93,0x30,0x6a,0xb4,0x22,0xc9, + 0x41,0xc4,0xef,0xd3,0xf5,0x50,0x02,0x83,0xfa,0x75,0xd7,0xb2,0xc2,0xab,0x65,0x49, + 0x27,0x34,0x93,0x54,0xeb,0x90,0x14,0x6c,0x6c,0x27,0x81,0xd7,0x3a,0xbd,0x14,0xba, + 0x8b,0xb2,0x23,0x38,0x75,0x40,0x7d,0xbf,0x82,0x32,0x52,0x17,0x3c,0x24,0x85,0x58, + 0x77,0x8f,0x65,0x1c,0x13,0xb9,0x4a,0x0f,0x83,0x3c,0x9e,0xb1,0x19,0xc6,0x8e,0x48, + 0x8d,0xbd,0x83,0x04,0x57,0xd6,0x6f,0xdd,0xd8,0xe5,0x2a,0x6e,0xab,0xef,0x5a,0x58, + 0x9e,0x6d,0xb9,0xb6,0x9f,0x31,0xf5,0x7c,0x36,0x64,0x99,0xa2,0x31,0x87,0xac,0x61, + 0xa4,0x4f,0xfb,0xe4,0x6d,0xc0,0x4a,0xaa,0xf8,0x52,0xf0,0x63,0xd5,0xd9,0xae,0x6a, + 0x94,0x69,0xc9,0x9d,0xac,0x39,0xdb,0xd1,0xa9,0x4f,0x7f,0x71,0xe9,0xcb,0xaa,0xd0, + 0xf1,0x64,0x98,0x1f,0xb6,0x67,0xf3,0xa0,0xc5,0x36,0x2e,0x18,0x88,0xec,0x80,0xc0, + 0x50,0x2b,0xf5,0x01,0x25,0xe1,0x3b,0x10,0x1d,0xf9,0xc1,0x0f,0x12,0xf2,0x6d,0x6d, + 0x13,0xf4,0xe7,0xf9,0xf9,0x07,0x85,0x84,0x75,0x0e,0x2d,0x3e,0xdc,0x4b,0xe9,0x1d, + 0xf7,0x72,0x76,0x53,0x10,0x67,0x80,0xda,0x4e,0xba,0x5f,0x30,0xd3,0xef,0x21,0xf7, + 0x3a,0xe4,0xa4,0x56,0xd8,0xb8,0x1b,0x09,0xcd,0xa3,0x54,0x85,0x09,0xac,0xbf,0x51, + 0xb1,0x58,0x45,0xca,0x29,0x81,0x5a,0x29,0xa7,0xd8,0x97,0xdd,0x35,0x6d,0x67,0x50, + 0x12,0xf4,0x85,0x89,0xa2,0x3b,0x0c,0x6e,0x06,0x10,0x60,0xa0,0x35,0xf4,0x1e,0x0f, + 0x2a,0x5e,0xde,0x8e,0x93,0x94,0x4b,0x8f,0x23,0x20,0x69,0xb0,0xd0,0x11,0x1f,0x52, + 0xc1,0x8c,0xb0,0xa1,0x00,0xa9,0xef,0xda,0x92,0x6c,0x1b,0x44,0xb0,0xc7,0x09,0x90, + 0xb4,0xe6,0x20,0x86,0xa9,0x84,0xe5,0x94,0xac,0xcc,0x1b,0x3d,0xec,0x05,0xd0,0xca, + 0x8f,0x78,0x72,0xb9,0xc6,0x85,0x13,0xd4,0x82,0x9b,0x94,0x1c,0xe3,0x14,0x8a,0x86, + 0x41,0xa7,0x25,0xf7,0xf4,0x94,0xd8,0x48,0x5c,0x02,0x6c,0x82,0xda,0x8b,0x5f,0x34, + 0x79,0x3b,0xc3,0x51,0x8c,0x3c,0x20,0x76,0x15,0x46,0xa8,0x45,0x92,0x01,0x23,0xcc, + 0x4c,0x7e,0xc6,0xd9,0x01,0xb2,0x37,0xc8,0x7f,0x7d,0xb4,0xd3,0x14,0xb4,0xc2,0xe9, + 0xbd,0x1a,0xff,0x1e,0xb5,0xc0,0x47,0x85,0xbd,0xa4,0x3b,0xa9,0xa8,0xaf,0x6a,0x45, + 0xeb,0x3e,0x31,0x7f,0x54,0x7d,0x47,0xbe,0x56,0x91,0x61,0xbb,0x8d,0xbb,0x45,0xf1, + 0xcc,0x54,0x76,0x7f,0x63,0x97,0x48,0x96,0x27,0x4e,0x26,0xc9,0x1e,0x7b,0xa3,0x3e, + 0x9b,0x30,0x89,0x5c,0x71,0xc8,0xba,0x07,0x6a,0xad,0xf1,0xb9,0x58,0x32,0x87,0xa4, + 0x25,0xe4,0x9d,0x56,0xdb,0x55,0xa4,0x31,0xca,0xa1,0x20,0xc7,0x52,0x0c,0xaf,0xa9, + 0x3a,0x2b,0xe8,0x68,0x1a,0x37,0x2a,0x25,0x42,0x6f,0x81,0x17,0x8f,0xf9,0xae,0xac, + 0xfa,0xc1,0x8a,0x52,0x47,0x63,0x5b,0xaf,0x07,0x4e,0x14,0x39,0x7a,0x02,0x26,0x68, + 0x46,0x4a,0xb7,0x97,0x69,0xec,0x5f,0x11,0x58,0x35,0x83,0x48,0xf0,0x59,0x4a,0xd2, + 0xbc,0x2d,0x1c,0x7f,0x94,0x91,0x98,0x3c,0xc3,0x0d,0x1a,0x22,0x30,0xf6,0x08,0x48, + 0xb9,0xed,0x2e,0x4c,0xb5,0x03,0x1d,0x18,0x39,0x41,0x4a,0xd8,0xcd,0xe4,0x0b,0xfa, + 0x0e,0xb9,0x32,0x31,0x2f,0x61,0xc8,0x16,0xf9,0xa9,0x12,0x63,0xa3,0x99,0x10,0x78, + 0xf7,0x1b,0x15,0x18,0x1f,0xa7,0x8b,0xab,0x9b,0x46,0xfa,0xde,0x45,0x25,0x1d,0xc9, + 0xbb,0xec,0xb9,0x1f,0xfe,0xda,0x81,0xfa,0xf4,0xcc,0x49,0x01,0x2e,0x61,0x40,0xdc, + 0xde,0xef,0x5c,0xf2,0x72,0x99,0x26,0x69,0x81,0xa2,0xeb,0xf8,0x34,0x4a,0x4b,0xc9, + 0xdd,0x08,0x5b,0xf1,0xc3,0x30,0x4c,0x19,0x6b,0x4e,0xda,0x8d,0x5d,0xbc,0xb1,0xb8, + 0xe2,0xed,0x25,0x4e,0xe1,0x64,0xd9,0x88,0xee,0xf1,0x9a,0xd1,0x6a,0xee,0x58,0x55, + 0x9b,0x5c,0xbf,0x80,0x95,0x17,0x89,0x87,0xd2,0x8f,0xdd,0x0f,0x41,0x99,0xa6,0xa7, + 0xa5,0x65,0x69,0xce,0x7b,0x56,0x28,0xdb,0x7a,0x96,0xda,0xff,0x8c,0x46,0xca,0x8f, + 0xe8,0xc3,0x85,0x50,0x5d,0x10,0xfc,0x45,0x2d,0x45,0x41,0x2c,0x08,0x2d,0x97,0xea, + 0xab,0xe4,0x6e,0xf6,0x4b,0x5a,0x8d,0x82,0x7a,0x26,0x54,0x3c,0x02,0x15,0xd3,0xea, + 0x69,0xb0,0x56,0xe6,0x2d,0x68,0x09,0xfc,0x67,0xd5,0x14,0xa1,0x67,0xd6,0x14,0x5a, + 0x43,0x10,0xee,0xb4,0x73,0xbe,0xab,0xb8,0xca,0x42,0x83,0x2b,0x88,0xc9,0x34,0x47, + 0x63,0xfb,0x88,0x77,0xfd,0xf9,0xca,0x82,0x68,0x0c,0xf5,0x7c,0x67,0x5f,0xa3,0xf7, + 0xf1,0x6e,0x9c,0x22,0xa3,0xe3,0x78,0x24,0x31,0xcb,0x48,0x7d,0x22,0xbc,0xb3,0xf3, + 0xa7,0x08,0x1d,0xfe,0x80,0x64,0x79,0x59,0x0d,0xe2,0xf1,0x02,0xc2,0x80,0xf9,0x50, + 0x87,0x06,0x03,0xe6,0x30,0xe4,0x0f,0x3d,0x28,0x22,0xf4,0x48,0x77,0x78,0xaa,0x78, + 0x50,0x01,0x0b,0x9d,0xbd,0xa2,0x22,0x2e,0xc9,0xb5,0xd9,0x3d,0x84,0xe9,0xf5,0x1b, + 0xd0,0xcd,0xf0,0x8b,0x57,0xb4,0x9a,0x28,0x3f,0xa7,0x04,0x43,0xd0,0x5c,0x6a,0x53, + 0xd9,0x4d,0x24,0xc9,0x5c,0x4a,0xa3,0x25,0x35,0x94,0x3f,0xda,0x03,0x7f,0x1a,0xa3, + 0xee,0xf6,0xef,0x62,0x57,0xbd,0x01,0x60,0x4f,0xc9,0xbc,0x1e,0x43,0x82,0x8b,0x2d, + 0xf4,0x9f,0x54,0x1e,0xff,0xf2,0x2f,0x16,0x96,0x99,0x3a,0xe1,0x08,0xe1,0x39,0x7e, + 0x95,0xec,0xe1,0x02,0x3b,0xa7,0xba,0xfc,0x0e,0xa3,0xd3,0xe1,0x26,0xad,0x41,0xe7, + 0xd4,0x73,0x76,0xa8,0x52,0x0a,0x8c,0x80,0x76,0xa2,0x71,0xb9,0xb1,0xc3,0x90,0xb1, + 0xdf,0xa1,0x5a,0x3d,0xf4,0x65,0x56,0x30,0x09,0x2c,0xc1,0x68,0x11,0xde,0x80,0x18, + 0x5d,0x42,0x3b,0xfd,0x6e,0x08,0x17,0xe3,0x84,0x05,0xf3,0x8d,0x4d,0xa8,0x8b,0x03, + 0x95,0xe3,0x6b,0xbe,0xf6,0xdf,0xd0,0x7d,0xfe,0xeb,0xb3,0x2b,0x57,0x16,0xd7,0x2c, + 0x26,0x9c,0x2c,0x68,0xde,0x06,0xbe,0x59,0x75,0xc7,0x1e,0x6a,0x8a,0xde,0x4f,0xb3, + 0x8d,0xb2,0xcc,0x2c,0x3f,0x82,0xe9,0xc2,0x28,0xb9,0x75,0xba,0x5f,0xbc,0xd3,0x59, + 0x93,0xad,0xd2,0x19,0x0d,0x09,0x33,0x13,0x94,0xa3,0x94,0xcf,0x98,0x1f,0xba,0x60, + 0xd3,0xa4,0x46,0xde,0xf4,0x8b,0x9d,0x9d,0x51,0x3d,0x50,0x93,0x98,0xde,0x43,0xcf, + 0x68,0x06,0x60,0xa5,0x7a,0x43,0x6b,0x3a,0xfd,0x6a,0x69,0x7d,0x71,0xad,0x81,0x59, + 0xe3,0x06,0xb7,0x22,0x67,0x7d,0xcf,0xc2,0xa5,0xac,0xed,0x26,0xa0,0x5d,0xe4,0x91, + 0x9a,0x56,0xca,0xeb,0x33,0xc7,0xe7,0x0e,0x82,0x20,0xcc,0xa1,0x75,0x81,0x8f,0xef, + 0x90,0x4c,0x15,0x07,0xf2,0xe1,0xe2,0x0d,0x3e,0x0a,0x46,0x2a,0xe0,0x0e,0xeb,0x44, + 0xd3,0xdd,0xb4,0x88,0x35,0x82,0x08,0x78,0x5e,0x6f,0xbc,0x1c,0x64,0x3b,0x4d,0xd2, + 0x01,0x8c,0xb9,0xc8,0x88,0x6e,0x9c,0x21,0x0c,0x3a,0x07,0xc3,0x9e,0x11,0x46,0x2b, + 0xa3,0x13,0xe6,0xab,0xde,0xc8,0xdb,0xa9,0xb3,0x34,0xcc,0x64,0xda,0x23,0x9d,0x8d, + 0x60,0x54,0x08,0x79,0x8f,0x44,0x85,0xfe,0xee,0x7b,0x5e,0x1f,0xd7,0x27,0xc3,0xbe, + 0xed,0xa7,0x71,0x67,0xda,0x8d,0x0c,0xc3,0xd4,0x14,0x86,0x93,0x8f,0xbf,0x0d,0xca, + 0x75,0xe8,0x4c,0xfd,0xfc,0x15,0xad,0xda,0x86,0x09,0x52,0xf7,0xd1,0xaa,0x11,0x60, + 0x57,0x82,0x96,0x8f,0x7c,0x28,0xe9,0xd9,0x8d,0x9a,0x42,0x7d,0xea,0x32,0xf9,0xbe, + 0x20,0x80,0x55,0x9d,0xeb,0x8a,0x22,0x9e,0xe7,0x5b,0xf0,0x80,0x24,0x72,0x90,0xd3, + 0x2a,0x9e,0x6f,0xf2,0x6d,0xb6,0x2b,0x70,0xd8,0xff,0x1e,0x20,0xda,0x91,0x4d,0xd1, + 0x0f,0xf7,0xac,0x96,0xc3,0x6d,0x16,0x6c,0x00,0x87,0xc0,0x18,0x76,0x25,0xb6,0xe9, + 0x36,0xc0,0xa1,0xfa,0x71,0x04,0xac,0xd3,0x75,0xe8,0x0f,0xde,0xfb,0xe6,0x5e,0xea, + 0x81,0x1f,0x0c,0x28,0x12,0xc5,0xc4,0xc3,0xd5,0x3c,0xf0,0x82,0xdd,0x3a,0x98,0x7a, + 0xb4,0x52,0x6e,0xab,0x20,0x15,0x2d,0x3f,0xe2,0xc1,0x83,0xdf,0x3f,0xfc,0xf1,0x5f, + 0xc9,0xef,0xee,0xdf,0xc3,0xfe,0x58,0x12,0x36,0x7e,0xff,0x7b,0xfa,0x4b,0x9a,0x82, + 0xca,0x98,0x1c,0xdc,0xf7,0xb4,0xbc,0x9e,0x44,0x98,0xa6,0x6e,0x8f,0x9e,0x1a,0xa3, + 0xa1,0xda,0xe2,0x1f,0x37,0xa7,0x0c,0xb2,0xde,0x0e,0x55,0xf6,0x6a,0x69,0xc0,0xec, + 0x72,0x7c,0xbb,0x3b,0x1d,0x4c,0xe3,0x08,0x30,0x99,0xd5,0x6f,0x89,0xcf,0x17,0x27, + 0x29,0x81,0x10,0xc6,0x61,0xd1,0x29,0x59,0x0c,0xdf,0x3b,0xbe,0xaa,0x1f,0x38,0xe0, + 0x7b,0x93,0x9b,0x95,0xb4,0xbb,0x08,0xd5,0x54,0x67,0x3c,0xe5,0x1e,0x1e,0x0b,0xe1, + 0x3b,0xb3,0xe9,0x66,0x75,0x19,0x86,0xe2,0xf2,0x7d,0x7f,0xe3,0xe7,0xb6,0xcd,0x8d, + 0xa4,0x74,0xc3,0x77,0xb5,0x0b,0x46,0x41,0x1d,0x15,0x69,0x71,0x43,0x71,0x58,0x81, + 0xea,0x49,0xf3,0x8d,0x0f,0xd1,0xb2,0x72,0xc7,0x09,0x05,0x21,0xeb,0xf5,0xda,0x6a, + 0x83,0x21,0x01,0xd6,0xed,0xc3,0x44,0x53,0x53,0x8c,0xb0,0x76,0x56,0xa3,0xc8,0x42, + 0x6a,0xe2,0x95,0x58,0x14,0xa3,0x47,0xe2,0xf9,0x3a,0x0f,0x49,0x44,0xf4,0xd9,0xe6, + 0xd6,0x0c,0xd6,0x5a,0xe1,0x7e,0xa8,0x94,0xc4,0xfa,0x99,0xc8,0x20,0xdf,0x49,0xf4, + 0xef,0x5c,0xae,0xdb,0xd4,0x93,0x12,0xae,0x8b,0xe6,0x98,0x1d,0x8c,0x1b,0xbe,0xe0, + 0xaf,0x18,0xcc,0xb4,0xb3,0x65,0xe0,0x62,0xe2,0x99,0xe0,0x4b,0x9c,0x9b,0x32,0x20, + 0x6f,0x71,0xff,0xd7,0xc5,0x09,0xe3,0xa4,0xb3,0xca,0xaa,0xfc,0x42,0x10,0xb6,0x12, + 0xc7,0x4b,0x56,0xdb,0xf2,0x8b,0xf3,0x34,0x10,0x29,0x5a,0xff,0x62,0x70,0x8a,0x41, + 0xab,0x01,0x6e,0x01,0xb6,0xbb,0xed,0x60,0x15,0xd8,0x88,0x7f,0x72,0x62,0x78,0x9e, + 0x7f,0xf0,0xce,0x56,0x1a,0x73,0x87,0xd4,0xdc,0xee,0x62,0x41,0xab,0x28,0x82,0x4a, + 0x2f,0x92,0x3a,0x3b,0x34,0x6c,0xa2,0xdd,0xac,0x36,0x9b,0x0f,0x2b,0xb7,0x3e,0x8f, + 0x3e,0xcc,0x8f,0x7b,0xbb,0x2d,0xfc,0x69,0x9b,0xc8,0x48,0x36,0x7b,0x2c,0xf1,0xb8, + 0x9c,0x5b,0x86,0xe1,0xe9,0xb0,0xb0,0x24,0x3d,0x74,0x7b,0xe0,0xaf,0x7d,0x62,0x84, + 0x7a,0xdb,0x88,0x86,0x0f,0x7e,0x6e,0x9f,0xfe,0x06,0xe1,0xe8,0x57,0x53,0x51,0xd4, + 0xa7,0x93,0xfb,0xe9,0xb7,0x8d,0x81,0xc5,0xa7,0x84,0x43,0x49,0x0d,0x0b,0x8f,0xb4, + 0x85,0x5b,0x0a,0xcf,0xf7,0x4e,0x6a,0xd8,0x9e,0x19,0xec,0x22,0x4f,0x97,0xb7,0xf3, + 0xac,0x80,0xb5,0x74,0xfe,0x23,0x95,0xbb,0x1c,0x77,0x8e,0x43,0xf9,0x61,0xf6,0x62, + 0xb5,0x63,0xa6,0xea,0x56,0x75,0x9e,0x9a,0xbf,0xd3,0x49,0xec,0xb8,0x6c,0x3a,0x98, + 0x70,0xca,0xc1,0x24,0xb3,0x9f,0x53,0xa8,0xf1,0xfd,0x28,0x35,0x9f,0xfb,0x10,0xa4, + 0x6b,0x62,0xca,0xa4,0xcf,0x3d,0x1d,0x4c,0xe1,0xf0,0x31,0xd6,0x20,0x53,0x9f,0x77, + 0x52,0xd3,0xa6,0xf4,0x24,0xd5,0x93,0xbb,0xf4,0x25,0x25,0x57,0x33,0x44,0xc9,0xfc, + 0x0c,0x6f,0xad,0x9f,0xc9,0x7f,0xb4,0x96,0xe9,0xfb,0x5b,0x6e,0x08,0x7c,0xc2,0xb6, + 0xe7,0xfd,0x2e,0x5a,0x4f,0x3c,0x6a,0xdd,0xca,0x2a,0xa3,0xd4,0x1f,0x78,0x61,0xbb, + 0xf4,0xbf,0x31,0x26,0x99,0x99,0xce,0x78,0xf0,0xdc,0x9e,0x64,0x84,0x81,0x70,0xef, + 0x60,0x33,0x78,0x32,0x8f,0x3d,0x53,0x3c,0x08,0xc0,0xd8,0x18,0x4b,0xc6,0x66,0x70, + 0x68,0x4a,0xb9,0x51,0x4b,0x20,0x7c,0x89,0xb6,0x9b,0xad,0xb1,0x49,0x37,0xe9,0x3f, + 0x77,0x3d,0xfb,0xa6,0xb3,0x99,0x1f,0x68,0xe6,0x3f,0x18,0x94,0x36,0x43,0x39,0xd9, + 0x3c,0xb7,0x83,0x94,0x65,0xa3,0x1a,0x1d,0x3b,0x1a,0x29,0x1e,0xdd,0x8b,0x47,0x78, + 0xcc,0x7e,0x8f,0x08,0xad,0xf7,0x08,0xb5,0x39,0x2b,0xaa,0xee,0x87,0x08,0x43,0x0f, + 0x69,0x55,0x33,0x7d,0xd6,0x67,0x25,0xa1,0x56,0x46,0x11,0xf8,0x3b,0xbf,0xb0,0x15, + 0x59,0x25,0xa6,0x2a,0xc7,0x37,0x50,0x71,0x56,0x07,0x4d,0xac,0x79,0xc9,0x20,0x8d, + 0x45,0xcf,0x36,0x38,0x52,0xd6,0x5a,0xe4,0xe4,0x25,0xdd,0x66,0x9b,0xe4,0xf1,0x30, + 0x79,0x6d,0x43,0x29,0x1a,0xd5,0xa5,0xf5,0x72,0x9d,0x1d,0x54,0x57,0x0f,0x23,0x08, + 0xc6,0xc4,0xbe,0xb9,0xef,0xfa,0xce,0x37,0x8e,0xb9,0x65,0x31,0x42,0xc3,0xee,0xd5, + 0x4d,0x0b,0x7f,0x78,0xee,0x7c,0x87,0x62,0xfb,0x85,0x7e,0xf5,0x02,0xd5,0xe0,0x78, + 0x2a,0x6a,0xbb,0xc1,0x71,0xf5,0x23,0x3d,0xed,0x31,0xfe,0x19,0x15,0x70,0x06,0x0c, + 0x9d,0x8e,0xfd,0x08,0xfd,0x1e,0x88,0x38,0x0d,0xa2,0xb5,0x67,0xe5,0xf8,0xb3,0xc9, + 0x2c,0x2c,0x54,0x5d,0x1e,0x2b,0x2a,0x59,0xd8,0xac,0xf6,0xcd,0xd0,0x43,0xe7,0xeb, + 0x34,0xd8,0x8d,0xf4,0x3e,0x28,0x36,0x69,0x18,0x25,0xda,0xe5,0x16,0xe0,0x91,0xc8, + 0x06,0x35,0x65,0x0d,0x91,0x6d,0x0e,0x59,0x49,0x5d,0x41,0xff,0x9f,0x9d,0x27,0x6d, + 0x6e,0x1b,0x57,0xf2,0xfb,0xfc,0x8a,0x2e,0x6e,0x55,0xe2,0xd4,0x46,0xb4,0x25,0xcb, + 0x8a,0x73,0x69,0xca,0xb1,0xe7,0xc8,0x6e,0x62,0x67,0xe3,0xbc,0xeb,0xd3,0x16,0x44, + 0x42,0x36,0x37,0x14,0xc1,0x07,0x40,0xb6,0x35,0xbf,0x7e,0xbb,0x1b,0x00,0x05,0x8b, + 0xa2,0x4d,0x25,0xd9,0x7b,0xdf,0x9b,0x19,0x59,0x44,0xe3,0xea,0xfb,0xa2,0xea,0xc7, + 0x5a,0x45,0x23,0x3c,0x72,0x46,0xa4,0x6d,0x9a,0x47,0x2d,0xdc,0xaf,0x57,0x87,0xaf, + 0xb3,0x9c,0x77,0x68,0x30,0xd3,0x15,0xde,0xf8,0x78,0xa6,0xf9,0xde,0x15,0x05,0xfe, + 0x74,0x8f,0x3a,0x84,0xe0,0xb5,0xc6,0x76,0xb9,0xb4,0x37,0xfb,0xae,0xa5,0x1e,0xff, + 0xf0,0xaf,0x00,0x50,0x7c,0xe1,0x5f,0x08,0x90,0x1a,0xff,0xc0,0x5e,0x5a,0x70,0x1d, + 0xfe,0xc9,0x68,0x92,0x80,0xf3,0x7a,0xf8,0x6f,0x6e,0xe1,0x7f,0xa7,0xee,0xde,0x26, + 0xdc,0x93,0x34,0xc6,0x7f,0x12,0xa0,0x64,0xfd,0xdb,0x84,0x58,0x3b,0x01,0x63,0xb5, + 0xfa,0x2a,0xdf,0x26,0xeb,0x2c,0x46,0x78,0x36,0x08,0x2b,0x86,0x07,0x6c,0x05,0x33, + 0x51,0xbf,0x4d,0xf8,0x16,0x09,0x6e,0x9c,0x15,0x3a,0x2b,0x25,0x64,0xb8,0xfe,0x10, + 0xe1,0xb2,0x95,0xfb,0xd4,0x38,0x2b,0x1d,0x85,0x8d,0xda,0x4b,0xfb,0xcd,0xf7,0x71, + 0x85,0x5a,0xd8,0x6b,0xc8,0xdf,0x26,0x1f,0x5f,0xa4,0x2f,0x00,0xff,0x15,0x13,0x98, + 0xc0,0x81,0xff,0xff,0x71,0x3a,0xf9,0x38,0x9c,0xa4,0x87,0xf7,0x06,0x86,0x7e,0x60, + 0x9c,0xbe,0x04,0xfc,0x57,0x0c,0xf1,0x91,0x9f,0x40,0xa3,0xe3,0x74,0xf4,0x71,0xf8, + 0x32,0x1d,0x6e,0x8c,0x0d,0xfd,0x18,0x6f,0xba,0x8f,0x08,0xc3,0x0f,0x74,0xc9,0x21, + 0x2b,0x85,0x31,0x6f,0x13,0xee,0x34,0x4e,0x08,0xa7,0x43,0x28,0x72,0xfc,0x3e,0xa0, + 0x57,0x29,0x92,0xe6,0x2d,0x07,0x44,0xfd,0xd0,0xcd,0xf0,0xc3,0x66,0x39,0x4b,0xa6, + 0x99,0xaa,0x10,0x23,0x16,0x69,0xf5,0xe4,0x9a,0x5d,0x96,0xd7,0x6f,0xf6,0x11,0x04, + 0x01,0xfd,0x07,0xf7,0x65,0xf8,0x2d,0xb8,0xd5,0x14,0x28,0xa1,0x90,0xf8,0x35,0xf8, + 0x49,0x32,0xc5,0xe3,0x20,0x18,0x42,0x33,0xbb,0x37,0xf0,0xdc,0xf4,0x7a,0x0f,0x3e, + 0xe3,0xd8,0x18,0xbf,0x72,0x77,0x5e,0xe2,0xc0,0x13,0x50,0x15,0x32,0x67,0xf6,0xf5, + 0x6d,0xc2,0x6e,0xc8,0xa9,0x03,0xda,0x7b,0x96,0xfc,0x44,0x6f,0x64,0x20,0x9c,0x7f, + 0x02,0x83,0x01,0x98,0xaf,0x45,0x0d,0xdc,0xed,0x0a,0xa2,0xca,0xa1,0x16,0xc6,0x4a, + 0x10,0x50,0x6b,0x49,0x15,0xa1,0x1c,0x32,0x7e,0x97,0x23,0xf9,0x49,0xe8,0x42,0x0c, + 0xb8,0x8b,0xf1,0x6d,0x72,0x51,0xcb,0x0a,0xc2,0xd6,0xd3,0x27,0x57,0xf6,0xf5,0xbf, + 0xbe,0xd9,0x77,0x7b,0xd3,0x45,0x1b,0x26,0xa4,0xde,0xd8,0x08,0x45,0xbc,0xcb,0xc0, + 0x48,0x94,0x53,0x14,0xd9,0x24,0xdc,0xaa,0x52,0x36,0x20,0x41,0x2b,0x3a,0x9d,0xb1, + 0xc2,0x2e,0x0d,0x61,0x01,0x67,0x46,0xf3,0x4b,0x45,0x52,0x4a,0xe0,0xfd,0xe7,0x1a, + 0x17,0xe3,0xf3,0xfc,0x9b,0x01,0xaf,0xd0,0x4c,0xe6,0x79,0xf7,0x89,0x4e,0x89,0x78, + 0xa6,0xf9,0x68,0x7a,0x92,0xa3,0xcb,0x04,0x3c,0x03,0xaf,0x34,0x22,0xc6,0x04,0x92, + 0x3a,0xdc,0xa4,0x95,0x14,0xeb,0xd0,0x28,0xde,0xbc,0xb1,0xfe,0x48,0xa6,0x7f,0x32, + 0x12,0xec,0x75,0x61,0xa0,0x52,0xb9,0x7c,0x6a,0x40,0xf0,0x06,0xa1,0xf3,0x32,0x85, + 0x4b,0x8b,0x04,0x10,0x9a,0xc2,0xd6,0xa2,0xcc,0x0d,0x6e,0x26,0xb4,0x45,0x21,0x46, + 0x69,0x78,0x93,0xe1,0x94,0x69,0x00,0x7d,0xb3,0xcf,0x5f,0x5f,0xc3,0x57,0x29,0x6b, + 0x58,0x1a,0x64,0x36,0x58,0x29,0x54,0x7e,0x50,0xcc,0xe9,0x8f,0xa7,0x37,0x12,0x44, + 0xa9,0x91,0x0a,0x2b,0x7a,0x2b,0xa8,0xba,0x42,0x32,0x16,0x36,0x7d,0xb3,0x5f,0xe3, + 0x25,0x28,0x69,0x18,0x61,0x93,0xbe,0x6e,0xe0,0x60,0x8e,0xd8,0x63,0x42,0x03,0x0e, + 0x06,0xb8,0xfa,0x16,0xf1,0xf2,0xa9,0x39,0x00,0x8f,0xe3,0x34,0xee,0x37,0xf1,0xcc, + 0x17,0x8e,0xc7,0xbc,0x19,0x4d,0xe3,0x26,0xe8,0x4c,0x2d,0xea,0x52,0x5a,0x04,0x43, + 0xea,0x6b,0x89,0xf8,0xf3,0xe0,0x7e,0x9c,0xfd,0x42,0x47,0xb5,0x16,0xdb,0xa3,0x3d, + 0x0c,0x0c,0x8e,0x32,0xb6,0x28,0x6c,0xbc,0x03,0x0d,0x4e,0x2f,0xd1,0xf3,0x86,0xa2, + 0x8a,0x98,0x30,0xba,0x4f,0xc8,0x87,0xc6,0xb3,0xf0,0xd9,0x9a,0x47,0xf6,0x09,0x09, + 0xf4,0xe9,0xbf,0x7a,0x9e,0x69,0x71,0xcf,0x6d,0xf1,0x07,0x92,0xe7,0x21,0xf6,0x61, + 0xde,0x64,0xe8,0xac,0x12,0x8e,0x53,0xa7,0xef,0x2b,0xa4,0xba,0x84,0xbf,0x14,0xbf, + 0x16,0x60,0x28,0x42,0x20,0xa2,0xab,0x7a,0x59,0xff,0x0c,0xef,0x2d,0x4e,0x54,0x46, + 0x06,0xc2,0x69,0xa8,0xaf,0x55,0x25,0xc1,0x94,0x48,0x58,0x93,0xfe,0xf4,0x46,0xc0, + 0xb5,0x96,0xf3,0xb7,0xc9,0x3f,0x44,0x22,0x8d,0x73,0x2f,0x96,0x76,0xef,0xd9,0x6b, + 0x8d,0xe2,0xa4,0x2b,0x98,0x8b,0xd2,0xc8,0x24,0xb0,0x66,0x3b,0x3a,0x4a,0xa6,0x2c, + 0xae,0x45,0xe5,0x76,0x98,0x69,0x75,0x6b,0xa4,0x7e,0xb3,0x2f,0xa6,0x60,0x15,0xb3, + 0x90,0xdf,0x5a,0xab,0x2b,0x2d,0x8d,0x49,0x3d,0x1e,0xe2,0x7b,0x71,0xf9,0x03,0x11, + 0x56,0x38,0x39,0xb6,0xf5,0xb0,0xc1,0x82,0xaa,0x08,0x91,0x45,0x34,0x36,0xda,0x7c, + 0x70,0xb8,0xf9,0x60,0xcc,0x0f,0x5a,0xf2,0x7d,0xfb,0xc7,0xb0,0x5b,0x1c,0x2f,0xf1, + 0x08,0x30,0x84,0x27,0x8b,0x22,0xcf,0x95,0x7d,0xcd,0xf8,0xfc,0x21,0x72,0xe9,0xb7, + 0x46,0xea,0xce,0x0b,0xd4,0xa7,0xf5,0x2a,0x99,0x9e,0x3a,0x25,0xbe,0x96,0x56,0xc2, + 0x14,0x23,0x89,0xa9,0x58,0x49,0x8b,0x8c,0xfb,0x15,0x8c,0x82,0x02,0x29,0x28,0x2a, + 0xd0,0x52,0x64,0xd7,0x4c,0xe6,0x8f,0xff,0xf2,0xe5,0x0b,0x20,0x7e,0xd1,0xc7,0x27, + 0x4c,0xd6,0x6d,0xfe,0xc0,0xbb,0xcf,0xa6,0x9f,0x58,0xbd,0x92,0xe0,0x22,0xef,0xe1, + 0xf4,0x05,0xe9,0xb1,0x5c,0xd6,0xa5,0x5a,0x2d,0x64,0x65,0x7f,0x46,0x4e,0x9e,0xc2, + 0x17,0xda,0xde,0x31,0x1d,0x58,0x69,0xac,0x59,0x33,0x92,0x4b,0xf0,0xe0,0xc4,0x99, + 0x52,0xd6,0xd9,0x94,0x5c,0x58,0x31,0x60,0x5b,0x7c,0x38,0x7a,0x31,0x39,0x4e,0xa6, + 0xb0,0xac,0x4a,0x69,0x0c,0x1d,0x1c,0x90,0x47,0x94,0xd7,0x05,0xbc,0x88,0xb9,0x66, + 0xe5,0xfe,0xcb,0xe5,0xa7,0xc1,0xf9,0xc5,0x5f,0x78,0xa4,0x92,0xa5,0x37,0x3b,0x29, + 0xbc,0x9f,0x13,0x54,0x74,0xa0,0xe6,0xce,0x8c,0x10,0x0b,0xe2,0x46,0x14,0x25,0x79, + 0x60,0x80,0x2e,0x8f,0x7c,0x0e,0x4b,0x23,0xe1,0x4f,0x97,0xef,0xe8,0xe6,0x85,0x28, + 0x41,0x58,0xc0,0x4b,0x3a,0xd3,0x91,0x2e,0xd0,0x60,0x66,0x78,0xda,0xb4,0x50,0x7c, + 0x2d,0x32,0x33,0x7a,0x59,0x11,0x04,0x05,0xe4,0x84,0xf7,0xd4,0x98,0x22,0x87,0x34, + 0x4d,0x1b,0x80,0x78,0xb0,0xbe,0x6d,0xc6,0x52,0x44,0x8a,0x74,0x24,0xa1,0x86,0x18, + 0xc6,0xc8,0x82,0x75,0x24,0xe5,0x98,0xd6,0xc6,0xd7,0x6d,0x22,0xad,0x2e,0x10,0x46, + 0xcc,0xad,0xd4,0xd1,0x65,0x1c,0x87,0x77,0x28,0xbd,0xe9,0xb9,0xbf,0x29,0x59,0x7b, + 0xd8,0xbb,0xbc,0x7c,0x7f,0xf6,0xac,0xd1,0x77,0xf1,0x0c,0x94,0xa3,0x46,0xea,0xbc, + 0x7f,0x9e,0x6c,0x68,0x44,0xa7,0x75,0x98,0x30,0x28,0xb8,0xcd,0x45,0x1b,0x96,0xa3, + 0x2f,0x5e,0x3d,0x8a,0xba,0xb0,0xa2,0x44,0xd6,0x45,0x89,0x9a,0xcf,0x83,0xce,0xd4, + 0x94,0xa2,0xf6,0x4f,0xfc,0x56,0x2e,0x9c,0x4f,0xb6,0x29,0x49,0x30,0x32,0x5b,0xaf, + 0x9d,0x09,0x56,0x8e,0x9b,0xae,0x01,0xdb,0x71,0x4a,0x0c,0x6a,0x55,0xe2,0x34,0x06, + 0xe3,0xaa,0xac,0x1f,0x92,0x77,0xf8,0x2d,0x97,0xb8,0x88,0x57,0x2c,0xaa,0x5a,0x28, + 0x24,0x2f,0x86,0xe8,0xd5,0xdb,0x84,0x4b,0x81,0x69,0xad,0xf9,0xf3,0x8c,0x1d,0x6d, + 0x54,0x45,0x91,0x76,0x52,0xb5,0xac,0x2e,0x71,0xcd,0xbd,0xa7,0xfe,0x7e,0x4f,0x9f, + 0x25,0x53,0x7a,0x10,0xe9,0x66,0xc6,0xfe,0x83,0x34,0x68,0x1b,0x9a,0x08,0x8c,0x1b, + 0x72,0x93,0x0e,0xe3,0xb3,0x81,0x6e,0xb6,0x3f,0xb1,0x80,0xf3,0x03,0xcc,0xf9,0x95, + 0xb2,0xba,0x22,0x57,0x76,0x32,0xde,0xb0,0x4f,0x8c,0xec,0x2e,0xec,0x82,0x59,0x80, + 0x6b,0x04,0xde,0x8a,0xd6,0x9a,0xf4,0x67,0x83,0xba,0x16,0xae,0xa3,0x33,0x44,0x18, + 0xb3,0xea,0xea,0xaa,0x94,0x24,0xd5,0xe1,0xd6,0x7b,0xa4,0x77,0x08,0x6d,0xb8,0x4f, + 0x84,0xb6,0x36,0xc2,0xe8,0x45,0x90,0x64,0xfa,0x41,0xa2,0x24,0xc0,0xac,0x14,0xd5, + 0x57,0xd6,0x26,0xa2,0x02,0xa2,0x42,0x10,0xd9,0x14,0x22,0xfd,0x10,0xf6,0x1f,0xd0, + 0x54,0x46,0x73,0x7d,0xad,0x05,0x59,0xa0,0x85,0x58,0xc1,0x4c,0xc2,0xb2,0x26,0x5d, + 0x37,0x39,0xe4,0xd7,0x89,0x45,0x66,0xa5,0x36,0xaf,0x41,0xc0,0x64,0x3c,0x68,0x1e, + 0x00,0xd6,0x22,0x61,0xb1,0x34,0x96,0xe0,0xaf,0xe5,0x9d,0xc8,0x65,0x56,0x2c,0x44, + 0x99,0x7a,0xf5,0x01,0xa3,0x74,0xfc,0xc4,0xe2,0x06,0xa6,0x7e,0xfd,0xdb,0xef,0x7f, + 0x84,0x73,0x18,0xbc,0x72,0xb9,0x4a,0x1f,0xa0,0x7e,0x5b,0x85,0x79,0x76,0x08,0x6a, + 0x6a,0x9f,0x95,0x5f,0xd0,0x56,0xdb,0xbd,0x10,0xf7,0xd2,0xca,0x9a,0x0d,0xa4,0xa9, + 0xd1,0x0e,0xa6,0x7e,0x0e,0xd2,0xbe,0x40,0x36,0x1e,0x32,0x0f,0xe0,0xe7,0x21,0xc9, + 0x95,0xac,0xf9,0x89,0x17,0xb0,0x75,0x85,0x7b,0x38,0x3a,0x60,0x99,0x6e,0xa3,0xfc, + 0x23,0xdd,0x7e,0x21,0xac,0x57,0xfa,0x1b,0x17,0xd6,0x6a,0x49,0x68,0x22,0x15,0x24, + 0xd1,0x0e,0xac,0x82,0x9a,0x65,0xbd,0x95,0x02,0x49,0x43,0xc5,0xaa,0xbf,0x28,0x4b, + 0xd6,0x60,0x7e,0xc6,0x53,0x13,0xae,0x96,0x02,0x39,0x8b,0x84,0x2f,0x10,0xe1,0x19, + 0xd4,0x52,0x2f,0x0a,0x6b,0x65,0x0e,0xa5,0xca,0x44,0x89,0xb8,0x84,0x93,0x46,0xa7, + 0x8b,0xaf,0xd2,0x80,0x9c,0xcf,0xc9,0x6c,0xb1,0xbe,0xf3,0xb6,0xe1,0x39,0x18,0xc5, + 0x58,0x23,0xcd,0xfd,0x6f,0xaa,0xa8,0x64,0xee,0xc7,0x79,0x5f,0x86,0x01,0xab,0x54, + 0xda,0x43,0x2a,0xcf,0xf1,0xf8,0xac,0x16,0xdb,0x98,0x6f,0x6b,0x3b,0x82,0xbb,0x27, + 0x69,0x87,0xc3,0x6d,0xa8,0x0c,0xc2,0x49,0xe0,0xcc,0x94,0x8e,0xed,0x2b,0x50,0xce, + 0x6d,0x22,0xe3,0xc1,0x98,0x2c,0x2a,0x6f,0x5b,0xd9,0xc1,0xa7,0xe7,0x46,0x5c,0x49, + 0xb3,0x71,0xee,0x6e,0xff,0xd1,0xcb,0x1b,0x6d,0xf6,0x9b,0xda,0x1b,0xa1,0x78,0x9d, + 0xe3,0x79,0x5f,0xc1,0x67,0x91,0x17,0x6a,0xab,0x94,0xf9,0xa3,0x8d,0x7a,0xc6,0x0b, + 0xec,0xa0,0x8c,0x1a,0x07,0xc5,0x2f,0xfc,0x23,0x3c,0x14,0x46,0xbc,0x13,0x1f,0x94, + 0x37,0xa1,0x81,0xbd,0x0d,0x85,0xe8,0xd1,0xc0,0xce,0xa9,0xac,0xb8,0xd1,0x17,0x34, + 0x6d,0x49,0xc1,0x1c,0x99,0x40,0x93,0xc2,0x27,0xbc,0x30,0x63,0x91,0x14,0x93,0xb4, + 0xce,0x85,0x61,0xe6,0x71,0x78,0x5d,0x1a,0x46,0x60,0xdd,0x45,0x70,0xac,0xc3,0x16, + 0xaa,0xf2,0xb3,0xd7,0x44,0x77,0x2f,0x22,0x05,0xca,0xe9,0x9a,0x91,0xcb,0x7c,0x48, + 0x0f,0xf8,0xde,0x97,0xb2,0xf4,0x5a,0x0c,0x49,0xe3,0xe0,0x1f,0x20,0xbe,0xae,0x07, + 0xd9,0x12,0x1d,0xf2,0x1e,0x3c,0xf8,0xe5,0xaf,0x50,0xab,0x5b,0xa9,0x61,0x2f,0x7f, + 0xb7,0x78,0xd6,0x4f,0x05,0xd8,0x3b,0x2f,0xf6,0x83,0x97,0x5e,0xee,0x0f,0x0f,0x76, + 0x13,0x77,0xf7,0x2b,0x08,0x50,0xca,0x2b,0x51,0xfa,0xfd,0x6f,0x04,0xfb,0x16,0xb3, + 0x15,0x68,0xc6,0x12,0x12,0x3e,0x17,0xe6,0xfa,0x35,0x70,0xf3,0xbd,0xc7,0xb2,0x5e, + 0x96,0x2d,0x16,0x6d,0xb9,0x83,0xe7,0x52,0xe6,0x0d,0xd1,0x90,0x5c,0xc2,0x02,0xf5, + 0x62,0x3e,0xb5,0x40,0x1d,0x52,0x32,0xff,0x19,0x4e,0xaf,0x95,0x32,0x92,0x7c,0xa2, + 0x7f,0x26,0x77,0xdd,0x47,0x50,0xcd,0x1c,0x72,0x8c,0x9e,0x03,0xf5,0x8f,0x98,0x6b, + 0x17,0xca,0x3f,0x27,0xaa,0x57,0xf4,0x48,0x0e,0xec,0xb2,0x92,0x50,0x38,0x69,0x6a, + 0x07,0x14,0x21,0x47,0x70,0x52,0xd7,0x9b,0x21,0x05,0x46,0xc0,0x37,0xa2,0xca,0xf0, + 0x70,0x32,0x2f,0xac,0xe2,0x90,0x21,0x8d,0x05,0xad,0x2d,0x0a,0x4d,0x34,0x3b,0x68, + 0x05,0xd2,0x61,0xe4,0xc7,0x48,0xc4,0x45,0x25,0x37,0xe2,0x67,0x36,0x7d,0x71,0x78, + 0xed,0xbc,0xcf,0xa5,0xef,0x17,0xa8,0x51,0x59,0x10,0x8e,0xf4,0xe2,0x56,0x68,0x32, + 0x73,0xa5,0x12,0xb9,0x79,0xee,0x72,0x1e,0x5a,0x59,0x99,0x21,0xa6,0x1d,0xf2,0x58, + 0x5d,0x3e,0x24,0x16,0xe7,0xf2,0x16,0xea,0x7e,0xa1,0xb0,0xe7,0xc1,0xe8,0x49,0xac, + 0x12,0x87,0x47,0x9b,0xce,0x47,0x25,0x6f,0x9b,0xc0,0xf8,0x41,0x56,0x1c,0x1e,0xc1, + 0x9f,0xbe,0xfc,0x3a,0x38,0x46,0x06,0xb4,0xd2,0x38,0x7b,0x71,0x3c,0xc0,0xa7,0xb5, + 0x46,0x38,0xf6,0xcc,0x4f,0x2e,0x4f,0xdf,0xbf,0x8f,0xec,0x38,0x58,0xc5,0x71,0x40, + 0xb8,0x2f,0x73,0x44,0x74,0xe3,0x0e,0x07,0xc3,0xa7,0x57,0xf8,0x22,0x8c,0xf2,0x81, + 0xa8,0x59,0x53,0xf7,0x10,0x57,0x8a,0xa4,0x08,0xe7,0x3b,0xa1,0x8b,0xf2,0xbc,0xdf, + 0x88,0xb0,0x2e,0xee,0x64,0x6f,0xbd,0xdb,0x67,0xde,0x30,0x0e,0x43,0xd4,0x5a,0xef, + 0x30,0x35,0x1b,0xac,0x42,0xd7,0x3c,0xc6,0xcc,0xa6,0x63,0x1e,0x74,0x1a,0xeb,0xe2, + 0x01,0x65,0xd7,0xee,0x2d,0x7f,0x89,0x0f,0x58,0x43,0xee,0xe1,0x26,0xf4,0x05,0x18, + 0xf0,0xa1,0xad,0x1e,0xde,0xa1,0x62,0xab,0x1b,0xed,0x80,0x9c,0xe0,0x37,0xf0,0x26, + 0x8e,0xed,0x66,0xdb,0xc2,0xb5,0x0c,0xdd,0xe1,0x2e,0x86,0xee,0xb0,0x31,0x74,0x7e, + 0x79,0x1c,0xe8,0xe0,0x81,0x8b,0x99,0x8b,0x87,0x7d,0x44,0xa5,0x74,0x81,0xe2,0xfc, + 0xac,0x8f,0x0f,0xb1,0xf8,0xbb,0xb5,0xa9,0x83,0xdf,0x1e,0x26,0x6d,0x93,0x90,0xdf, + 0xd5,0xad,0xd3,0x03,0xca,0xef,0xeb,0x0d,0xe4,0x9c,0xd4,0x75,0x61,0x8d,0x2c,0xe7, + 0x40,0x7a,0x63,0x39,0x2b,0x51,0x5f,0xca,0xdc,0x7b,0x14,0xfb,0x35,0x52,0x5c,0xda, + 0xb5,0x63,0x01,0xef,0x2b,0xca,0x0b,0xb1,0xfa,0x10,0x25,0x5b,0xdf,0x46,0xc7,0x57, + 0xca,0x92,0xf1,0xf4,0x4a,0x47,0xd5,0x45,0x86,0xdb,0x69,0x3a,0xe2,0x35,0xdb,0x62, + 0x9e,0x84,0xf6,0x57,0x4b,0xf2,0xf1,0x10,0x8e,0xb3,0x78,0xd6,0x87,0xae,0x8c,0x88, + 0x3e,0x0e,0xd7,0xfb,0x93,0x2f,0x27,0xc1,0xbc,0x50,0xca,0xaf,0x37,0xce,0x0a,0xfc, + 0x72,0xdf,0xf9,0x6a,0xe3,0x6f,0xad,0x18,0x1a,0x06,0xeb,0x6c,0xfc,0xed,0x63,0x24, + 0xcf,0xa5,0xd0,0xd2,0x58,0x10,0x85,0xa6,0x76,0x38,0x3e,0xf0,0x73,0x90,0xe9,0x55, + 0x4a,0x86,0xeb,0xec,0x97,0x73,0x32,0x53,0xac,0xa8,0xd8,0x99,0x63,0xac,0x01,0xe5, + 0xfa,0x4d,0x1f,0x54,0x5c,0xdc,0x56,0x52,0x3b,0xa2,0x65,0x14,0x80,0xf4,0x67,0x1f, + 0x9a,0xd8,0x0e,0xf9,0xfa,0xc5,0xdc,0xb1,0xae,0xe9,0xe6,0xb8,0x8b,0xda,0xf3,0x88, + 0x67,0x8f,0x10,0x2d,0x51,0x70,0x14,0x1d,0x19,0x94,0x4f,0xf2,0xd1,0x8a,0xa2,0xc2, + 0x29,0xcc,0x0d,0xc4,0x68,0x59,0xb9,0xcc,0x19,0x2d,0xcc,0x42,0xf0,0x4f,0x7f,0xf9, + 0x62,0xc0,0x28,0xce,0x23,0x15,0x99,0xf4,0x4e,0x81,0x59,0xd6,0x8c,0x58,0x9f,0x73, + 0x2a,0x9d,0x43,0x47,0x47,0x29,0x16,0x6b,0xcb,0xd7,0x1f,0x99,0xfc,0x2e,0xff,0x76, + 0x3c,0xf2,0xd0,0x06,0x22,0xf9,0x59,0x1b,0x73,0xbd,0x91,0xc2,0xa6,0xa7,0xd8,0x76, + 0x55,0x96,0x22,0xbe,0x06,0x45,0x45,0xcd,0x4d,0xc8,0xb7,0x35,0x6a,0x21,0x1b,0x34, + 0xc4,0x57,0xf3,0xaa,0xc8,0x25,0xda,0x22,0xed,0x13,0xb2,0x1f,0xa5,0xb2,0xe6,0x47, + 0xd9,0x83,0x51,0x4f,0x7b,0xd0,0x52,0xd4,0x1b,0x7a,0xff,0x23,0xa2,0x31,0xa8,0x7d, + 0xaf,0x35,0xfb,0x6b,0xfd,0x0d,0x15,0x1f,0xd6,0xfa,0x2c,0xa9,0x9c,0xd7,0x43,0xbb, + 0x8f,0xfb,0x69,0xf7,0xc6,0xb8,0xf0,0xba,0x03,0xae,0x17,0x25,0x4e,0xe5,0x8f,0xa3, + 0xd8,0x86,0x47,0xe1,0x89,0x58,0xd4,0xaf,0x39,0x11,0xd7,0xa2,0x80,0x5f,0xa0,0x9b, + 0x04,0xc1,0xfb,0xbd,0x14,0x37,0x4c,0xf5,0x26,0xbf,0xe9,0xa2,0x05,0x99,0xb3,0x53, + 0xf2,0x1c,0x28,0xd9,0xc2,0x03,0xc1,0xaf,0x43,0x8b,0xdf,0x64,0x23,0x45,0x9e,0x53, + 0xca,0xc5,0xbb,0xbb,0x2e,0x9a,0x35,0x80,0xfc,0xa7,0xc0,0xf5,0x1d,0x51,0x26,0x44, + 0x7b,0x6d,0xfc,0xc5,0x67,0xbb,0x11,0x96,0xdd,0xc1,0x28,0x89,0x49,0x5d,0xf8,0xfa, + 0xf9,0xbd,0xac,0xa4,0xc4,0x2a,0x0c,0xe2,0x9c,0x95,0xd6,0xae,0xfc,0xb3,0x81,0x44, + 0x2a,0xf3,0x6e,0xf2,0xd4,0x61,0x8b,0xa7,0xfa,0x1b,0x7e,0x42,0x78,0xbc,0x1e,0x67, + 0x88,0x11,0x8f,0x92,0x18,0x82,0x3e,0x1d,0x61,0x3c,0x3e,0xda,0xbc,0xd1,0x51,0x1b, + 0xe1,0xb5,0xf1,0x41,0x8b,0x66,0x8d,0xaf,0xde,0x6e,0xaf,0x8f,0x2a,0xe7,0xc3,0x09, + 0x19,0x86,0x9d,0x22,0x8c,0x6d,0x31,0x00,0x2d,0xb2,0x25,0xf0,0x60,0x77,0xbc,0xbb, + 0x34,0x23,0xea,0xfa,0x21,0xfe,0x46,0x87,0xd8,0xf0,0x15,0xf9,0xaf,0x88,0x70,0xac, + 0xe1,0x50,0xdb,0xb3,0x2f,0x75,0xaf,0xa6,0xb1,0x91,0x17,0xd8,0x98,0xc0,0x2a,0x31, + 0x99,0xb2,0x10,0x77,0xc1,0x70,0x06,0x32,0x99,0x12,0x1b,0x77,0xc3,0x90,0xf3,0x61, + 0x90,0x6a,0xf4,0xd1,0x0d,0x85,0x78,0xc4,0xaa,0xc4,0x87,0xf7,0xdd,0x79,0x0a,0xeb, + 0xdc,0xc1,0x4e,0xb9,0xe6,0x1c,0xc2,0x43,0x5e,0xda,0x79,0x94,0xd7,0xd9,0x35,0xad, + 0xf3,0x58,0x36,0x6f,0x38,0x39,0x3c,0x1e,0x37,0x3b,0xbd,0x2b,0x97,0xd2,0x2a,0x65, + 0xaf,0x7b,0xe7,0x92,0x66,0x61,0x46,0xba,0x6d,0x7b,0x88,0x3a,0xc5,0xde,0x26,0x14, + 0x08,0x85,0x12,0xfd,0xe0,0x49,0x69,0x5f,0x37,0x1e,0x17,0xd5,0xa9,0x1f,0x36,0x55, + 0xc1,0xd4,0xc3,0xfa,0x88,0xfc,0xfb,0x88,0xde,0x63,0x83,0x38,0xd3,0x6a,0x15,0xcc, + 0x55,0x59,0xaa,0xdb,0xde,0x6e,0x5d,0x8c,0x91,0xc9,0xd1,0xd1,0xe1,0xa4,0x8d,0x91, + 0xa0,0xd0,0x76,0x43,0xca,0x42,0x64,0xf7,0x70,0x32,0x1a,0x6f,0xc1,0xc9,0x5c,0x64, + 0x56,0xe9,0x55,0xd8,0x61,0x2b,0x22,0x08,0xee,0x74,0x84,0xaf,0x1f,0xe2,0x4b,0x2f, + 0xaf,0x0e,0x0f,0x5f,0x8d,0xc7,0xaf,0x8e,0x8e,0x50,0x2d,0x8a,0x2a,0x57,0x8b,0xf0, + 0x39,0xe0,0x9c,0xe6,0xc0,0x25,0x17,0x95,0x0e,0x4f,0x39,0xa9,0x38,0xf0,0x15,0x98, + 0x14,0x4e,0x4b,0x29,0x70,0x4c,0x1a,0xdc,0x94,0x1d,0x98,0xd6,0x09,0x52,0x57,0xdf, + 0xca,0x95,0x74,0x25,0xa5,0xb8,0x3a,0x65,0xa5,0x28,0x11,0x1b,0xf3,0x52,0x5c,0xf5, + 0x44,0x28,0xf6,0x4d,0x1e,0xbc,0x18,0xb5,0x31,0x1a,0xd6,0x6a,0x65,0xaf,0xda,0x68, + 0xf4,0x90,0xb8,0x86,0x62,0x86,0x80,0x1b,0x81,0x63,0xde,0xc3,0xb9,0x98,0xcf,0xdf, + 0xec,0xbb,0xe7,0xad,0xf1,0x0a,0x87,0xab,0x66,0xb4,0x3b,0xdf,0x45,0xb5,0xe0,0x5c, + 0xd6,0x92,0x1b,0xd0,0x40,0x71,0x8d,0x2d,0x60,0x23,0x24,0x73,0x52,0x38,0xc9,0xf9, + 0xc5,0x7d,0x23,0xbd,0x09,0x2b,0x57,0xb0,0xac,0x6c,0x51,0x02,0xff,0xe4,0x1f,0xd4, + 0xa2,0xd0,0x08,0xe7,0x4d,0x9e,0xc8,0x32,0x59,0x5b,0x17,0x9c,0xb0,0x93,0x38,0x53, + 0x15,0xb9,0x57,0xb5,0x94,0x1a,0x97,0xaa,0x9a,0xe5,0xb5,0xb2,0x82,0x0f,0xad,0x25, + 0x15,0x07,0x4c,0x58,0x07,0x29,0xc5,0x78,0x47,0x08,0xf9,0xf7,0x65,0xa1,0x25,0x08, + 0x6f,0x37,0x7a,0x22,0x7e,0x34,0x19,0x0d,0xc7,0xe3,0x50,0x5b,0x37,0xa8,0x87,0x64, + 0x5d,0xae,0x06,0xfe,0x3a,0x0d,0x41,0x3e,0xd0,0x90,0xcf,0xdd,0x92,0x0b,0x09,0x0c, + 0xd6,0x45,0x15,0x5e,0x29,0x65,0x90,0x4e,0x72,0xc0,0x9e,0x6f,0xf4,0x7a,0xd6,0x45, + 0x98,0x4a,0xa1,0x1a,0xa7,0x35,0xe0,0x5c,0x75,0xc1,0xac,0xa4,0x09,0x40,0x7f,0x93, + 0xa6,0x17,0x11,0x1b,0x68,0x50,0x1a,0x57,0x26,0x4d,0x90,0x9c,0x2c,0xe0,0x3d,0xd0, + 0xa1,0x7f,0x4e,0x60,0xae,0xd5,0x82,0x9d,0x22,0xca,0x2c,0x15,0x37,0xc2,0x4a,0xe2, + 0x6d,0xae,0x4e,0x5a,0x14,0x01,0x03,0xb7,0x44,0x39,0x76,0x73,0xbd,0x76,0x29,0xcc, + 0xda,0x17,0x49,0x81,0xd6,0xe7,0xb2,0x25,0x15,0x78,0x69,0x76,0x89,0x8e,0xb1,0x95, + 0x79,0x0a,0x7f,0xe3,0xe8,0xe1,0x5a,0xf9,0x39,0x6e,0x0f,0x15,0xaf,0xd5,0xad,0x7f, + 0xd8,0x63,0x89,0x05,0x26,0xe9,0xb2,0x04,0x1f,0x90,0x51,0xec,0x72,0x1d,0x6d,0x3e, + 0x98,0x5b,0x2d,0x85,0x0d,0x25,0x14,0x51,0xad,0x3a,0x4c,0xc1,0x9a,0x09,0xaa,0xab, + 0x1d,0x96,0x56,0xd5,0xb6,0xa5,0x7f,0x4c,0x06,0xb2,0xe5,0x89,0xb2,0xf6,0xeb,0x93, + 0x45,0xa4,0x94,0x61,0x2b,0x91,0xd8,0xb2,0x0d,0xc1,0xd3,0x0c,0xc9,0xda,0xa8,0xcf, + 0xe7,0x3f,0x2e,0x85,0x17,0xd2,0x0c,0x85,0x59,0x6f,0xc7,0x78,0xfa,0xaf,0xcf,0x64, + 0xfe,0xef,0xcc,0x2a,0x46,0x3c,0xf6,0x41,0x7d,0x16,0xbe,0x00,0x73,0xaf,0xc7,0x8f, + 0x5a,0x3a,0x41,0x6a,0x1d,0xb5,0xed,0x31,0x14,0xff,0xb8,0x42,0x32,0x6d,0x2a,0x70, + 0x20,0x6a,0x56,0x88,0x5c,0x42,0xed,0x62,0xd1,0x5f,0x49,0x49,0xcb,0x2a,0x5b,0x3d, + 0x87,0x19,0xb2,0xa1,0xff,0xd5,0xe6,0xcb,0x5f,0x99,0x27,0x4f,0x3f,0xc3,0x62,0x5d, + 0x97,0xe4,0x4c,0x03,0x57,0x79,0xe4,0x1d,0x32,0x4f,0x94,0xbc,0x12,0x70,0xab,0x51, + 0x10,0x59,0x03,0xfa,0xca,0x61,0x1c,0x74,0xcf,0xbd,0x5d,0x2a,0x74,0x63,0x77,0xee, + 0x48,0xcd,0xa0,0x55,0xf2,0xed,0x1d,0x9d,0xf1,0x50,0x07,0xb9,0x9a,0x53,0xc3,0xde, + 0xc7,0xdf,0xff,0x78,0xf6,0xb8,0xf0,0xeb,0x2b,0x9c,0x8e,0x93,0x82,0xf8,0x1f,0xa4, + 0x07,0x07,0xc3,0x50,0xba,0x3d,0x3a,0xf0,0x45,0x9c,0x11,0xbe,0xda,0xf2,0x88,0xc2, + 0x79,0x17,0x90,0x04,0x7b,0x5f,0x7b,0xef,0x3c,0xbb,0x8d,0xf6,0x0d,0xdb,0xbe,0xf0, + 0x9b,0xc6,0x7b,0xee,0x88,0x86,0xcb,0x5a,0x4b,0x41,0x5d,0xbc,0xde,0x13,0x6a,0x1b, + 0xbf,0x70,0x02,0x43,0x93,0xbc,0x25,0x3a,0xda,0xb4,0x5c,0xd3,0x49,0xeb,0xc9,0x8b, + 0xd6,0x93,0xe3,0xd6,0x93,0x97,0xad,0x27,0xc3,0x83,0xf6,0xa3,0x61,0xfb,0xd1,0xa8, + 0x6d,0x14,0x1f,0x11,0x4e,0xbe,0x23,0x59,0xae,0xee,0x1b,0x66,0xfa,0xc7,0xdd,0xb0, + 0x75,0xac,0xdd,0xeb,0x87,0x3f,0xb0,0x7c,0xf8,0xb0,0xb2,0x88,0xb4,0x80,0xef,0x32, + 0x0f,0x9e,0x92,0xf1,0x7a,0xe4,0xcc,0x3d,0xde,0x12,0xaa,0x6d,0x99,0x1b,0xbc,0xba, + 0x96,0xbb,0xf5,0xd9,0x0f,0x84,0x0b,0x6e,0xfa,0x57,0x7e,0x81,0x34,0x2c,0xd0,0xf2, + 0xb2,0x90,0xcb,0xdf,0x29,0x3a,0xb0,0x77,0xb2,0xba,0xfc,0xa7,0x97,0x08,0xf8,0xf2, + 0x00,0xa1,0xae,0xb4,0x94,0xa6,0x0b,0x6a,0x78,0x8c,0x60,0xf8,0x9f,0xc7,0xe0,0x46, + 0x2f,0x10,0x0e,0xff,0x13,0xe0,0xba,0x69,0xdc,0x53,0xe6,0x2e,0x2a,0x54,0x94,0xd6, + 0x4a,0xbd,0x7a,0x0c,0x13,0x0b,0x95,0xcb,0xef,0x73,0xfd,0x5b,0xa3,0x2e,0x56,0x47, + 0x44,0xf2,0x67,0x17,0x94,0x77,0xc4,0xa9,0xbb,0x96,0xff,0x60,0x67,0xfe,0xe1,0x25, + 0x07,0x7e,0x4e,0x58,0x1a,0xfe,0x11,0xfc,0x93,0xae,0x79,0x64,0xde,0xa8,0x94,0x91, + 0x61,0x72,0x25,0xfc,0xb9,0xa3,0x5c,0x7f,0x29,0x16,0x92,0x9a,0xec,0xf6,0x8c,0xcc, + 0x54,0x95,0x9b,0x7e,0xc2,0x13,0xd0,0x6b,0xdd,0xec,0x8d,0xfe,0x9b,0x43,0x7c,0x15, + 0x7f,0xdd,0x81,0x13,0xf6,0xdf,0x99,0xc6,0xdc,0x7a,0xc8,0x62,0xfd,0x18,0x95,0x97, + 0x66,0xf6,0x1f,0x4a,0xe9,0xff,0xa7,0x34,0xa3,0xf8,0xfb,0xa8,0xcd,0x0e,0x62,0x74, + 0x7c,0xce,0x01,0xfb,0x7e,0x78,0xff,0x9a,0x82,0xaf,0xd2,0x51,0x2c,0x55,0x94,0xd2, + 0x39,0x2c,0x75,0x4d,0x41,0x11,0x1e,0xc3,0x27,0x21,0x28,0x62,0x3a,0x5d,0x77,0x84, + 0xb2,0x6b,0x6e,0x18,0xd4,0x1f,0x95,0x5c,0x21,0x9f,0x68,0x53,0x3a,0xe0,0x15,0xd8, + 0x59,0x31,0xae,0xc6,0x72,0x8b,0xce,0x11,0xb5,0xce,0xaf,0x19,0x0c,0x72,0x69,0x7d, + 0xe6,0xd1,0x85,0xf2,0x26,0x74,0x2a,0xcd,0x48,0x5d,0xa6,0xbd,0x7c,0xc5,0x90,0xdf, + 0x6c,0x29,0x79,0xcf,0xe7,0xdd,0xc1,0x76,0x43,0xa3,0x93,0x42,0x13,0x92,0xbd,0x2b, + 0xd1,0x8b,0x40,0x62,0xbe,0xf6,0x6b,0x82,0x5b,0x73,0xd0,0xd9,0x93,0x25,0xe6,0x83, + 0x1c,0x79,0xa8,0x5f,0x12,0x60,0xbc,0x36,0x3c,0x7f,0x45,0xbc,0x94,0xd4,0x4b,0x28, + 0x4c,0xbf,0x30,0x4f,0xdf,0xf1,0x84,0xf6,0xd9,0x1a,0x3f,0xaf,0xd3,0xe3,0x6a,0x9d, + 0xe3,0x68,0x38,0x8a,0x2d,0x3d,0x2f,0xbc,0x0b,0x8a,0xec,0xa3,0x67,0x79,0xdc,0xf0, + 0x47,0x67,0x33,0xf7,0x22,0x6e,0xea,0x67,0x74,0xde,0xfd,0x6c,0x7a,0x7a,0x72,0x06, + 0x7b,0xdc,0xde,0x53,0x85,0x5e,0x6e,0xae,0xbb,0x2e,0x0a,0x4a,0x67,0xcc,0xf0,0x94, + 0xd3,0x53,0xdf,0xf6,0x87,0xa7,0x2f,0x6e,0x0a,0xbb,0x5a,0x73,0x9e,0xeb,0x9d,0xa7, + 0xa5,0x36,0xde,0x27,0xb2,0x57,0x65,0x72,0xff,0x82,0xdc,0x8c,0x34,0x53,0x77,0xeb, + 0x2b,0x66,0x82,0x22,0x9a,0x25,0x2e,0xb0,0xf4,0x8b,0x3c,0x7e,0xf2,0xe1,0x24,0x3a, + 0x3a,0x52,0x78,0xa6,0x94,0xa1,0x0a,0xcd,0x95,0x28,0x2a,0x7f,0xda,0xcb,0xbf,0x0e, + 0x47,0x93,0x3b,0xd0,0x32,0x93,0x05,0x95,0xe4,0x58,0xb7,0x7d,0xd7,0x41,0x39,0x4a, + 0x4a,0xf5,0x1d,0x6d,0xb2,0xf3,0x89,0x47,0x07,0xe3,0x18,0xdd,0xbf,0xfe,0xf2,0x11, + 0xc2,0xb9,0xfd,0x81,0x7f,0xb9,0xb3,0x52,0x53,0xd2,0x77,0xae,0xa9,0xfa,0x80,0x92, + 0x3c,0x40,0xc3,0xb0,0x2c,0x25,0x7c,0x38,0x3f,0xf9,0x01,0x07,0x9f,0xcb,0xc5,0xb7, + 0x1e,0xfe,0x78,0xf8,0x72,0x14,0x1d,0xfe,0x8c,0x13,0x3b,0x5e,0xfd,0x18,0x2e,0x97, + 0xf9,0x3b,0x7c,0x96,0xf9,0x32,0x93,0x3e,0xf3,0xc3,0x7a,0xf1,0xb7,0x4f,0x97,0x50, + 0xe4,0xa5,0x87,0xfe,0xae,0x6b,0xf0,0x0a,0x6e,0xbb,0x1e,0x37,0x88,0xa2,0x5b,0xfe, + 0xf1,0x16,0xab,0xf4,0xa6,0x67,0xfb,0x89,0x2f,0xd0,0x0c,0x9b,0xae,0x20,0xf7,0x64, + 0xd9,0xe4,0xd6,0x8d,0xd7,0xac,0x91,0x23,0xba,0x4e,0x58,0x0a,0x2d,0x5d,0x0a,0xcc, + 0x37,0xfb,0xb3,0x7d,0xe0,0x09,0xbe,0xcf,0x56,0x96,0x5e,0xf5,0x0b,0x20,0x9b,0x8f, + 0xbb,0x48,0xa1,0x7d,0x31,0xbd,0x39,0xc6,0x53,0x03,0x8d,0xc9,0xa4,0xb2,0x54,0x49, + 0xd5,0x3a,0xaf,0xc6,0x3b,0xfd,0xef,0x45,0xb6,0x1c,0xb4,0xee,0xb9,0xee,0x5e,0xd7, + 0x2a,0x93,0xc6,0xa8,0xe8,0xb2,0x1d,0x89,0x4e,0x5e,0x29,0x6d,0xa0,0x12,0x08,0xef, + 0xb5,0x6e,0xb3,0xea,0x1e,0x33,0x7b,0x31,0x3a,0xba,0x93,0x9f,0x79,0x46,0xea,0xfb, + 0xec,0x74,0x70,0x76,0xda,0x05,0x52,0xe6,0xb8,0xe6,0x87,0xb3,0x8b,0x3e,0x59,0xcf, + 0x6d,0xd7,0xde,0x78,0xd5,0xae,0xbb,0x47,0x6a,0xb3,0x59,0xbe,0xbd,0x16,0x93,0x26, + 0xaa,0x18,0x72,0xc7,0xe9,0xe7,0x30,0xfc,0xab,0x27,0xcb,0xde,0x53,0x9c,0x45,0x2f, + 0x14,0x70,0x75,0xa1,0xa1,0x16,0x4e,0x0b,0xe4,0x6f,0x0a,0x64,0x8f,0x10,0x90,0x65, + 0xb4,0x9b,0x84,0x51,0x36,0xa7,0x07,0x0d,0x19,0xee,0x7f,0x0e,0x15,0xf9,0xb8,0x3f, + 0x8a,0x8e,0x7e,0xb5,0xdd,0x29,0xc9,0xf3,0x76,0xa7,0x65,0xfb,0x36,0xcd,0xce,0x5a, + 0x66,0x8a,0x4a,0x53,0xad,0x0b,0x45,0xd3,0x23,0x97,0xe5,0xe0,0xe5,0xc4,0xaf,0x70, + 0x57,0x1b,0x7e,0xb1,0x3b,0x69,0x29,0xe5,0xd8,0xea,0x6d,0x53,0xc0,0x67,0x4b,0xbb, + 0x1a,0x64,0xab,0xcc,0xbb,0xa0,0xcc,0x35,0xc1,0x04,0xbe,0xa6,0x54,0x1a,0xe7,0x81, + 0x39,0x8b,0x8c,0xec,0xb5,0x54,0x4b,0x13,0x86,0xbf,0x5d,0x35,0xd3,0x71,0xa9,0xa4, + 0xce,0x1c,0xd6,0x43,0x33,0xa3,0x4b,0x19,0xdd,0xd3,0xf1,0x88,0xe9,0x0a,0xa6,0xf0, + 0x9e,0x68,0x41,0x4a,0x79,0x23,0xcb,0x16,0xbb,0x47,0xbb,0x33,0x40,0xd2,0x8a,0xf2, + 0x31,0xc6,0x87,0x3d,0xbc,0x2b,0x35,0xec,0xf0,0x6f,0xf8,0x74,0xf2,0x35,0xda,0xb7, + 0x51,0xd7,0xd8,0x61,0x32,0x3d,0xec,0x18,0x23,0x47,0x73,0xdc,0x35,0x76,0x94,0x4c, + 0x8f,0x50,0xae,0x44,0xc9,0xbe,0x75,0xe7,0xd6,0xe8,0xcb,0x4c,0xba,0xc6,0x5e,0x24, + 0xd3,0x17,0x1d,0x63,0xe4,0xbe,0x1d,0x77,0x66,0x41,0x30,0x09,0xd2,0x99,0xfb,0xa0, + 0xd4,0xc7,0x41,0xd7,0xe8,0x42,0x54,0x4b,0x81,0xa8,0xfc,0xc8,0x9f,0x60,0xb9,0x07, + 0x6a,0x6b,0x1d,0x2a,0x66,0x09,0xf7,0x0b,0x39,0x6d,0x5f,0xa9,0x36,0x5d,0xc5,0xf8, + 0x86,0x01,0x28,0x09,0xb9,0x40,0xd6,0x19,0xcc,0x0b,0x59,0xe6,0x6b,0x9b,0xe5,0x1f, + 0x3f,0x44,0xf5,0x30,0xb5,0x9d,0x2c,0x0a,0x46,0x9b,0x2b,0x5f,0xad,0x34,0x67,0x07, + 0x5e,0x26,0x88,0x97,0x09,0x98,0xd5,0x62,0xa6,0x4a,0xd3,0xc9,0x0c,0x23,0xe4,0x86, + 0x51,0x80,0xea,0x9f,0xf3,0x63,0xbe,0x67,0xa5,0x15,0xdd,0xdd,0x23,0xbb,0x93,0xf7, + 0x9d,0x68,0xc2,0x6d,0x51,0xe5,0x38,0x79,0x0f,0xdb,0x9d,0x32,0xad,0x5e,0xf7,0x89, + 0x7f,0x69,0x79,0xda,0x24,0x44,0xbc,0x07,0x07,0x07,0x4d,0xae,0x90,0xff,0xd7,0x0a, + 0x7c,0x3b,0xb3,0xc4,0xa5,0x94,0xf5,0xb7,0x1f,0xc1,0xd0,0xf4,0x9d,0x4e,0xd1,0xad, + 0x5c,0x3d,0xd6,0xf8,0x6b,0x17,0x78,0xcb,0x79,0x3d,0x1c,0xc5,0x5a,0x53,0xd6,0x52, + 0x04,0x8f,0xfb,0x57,0xa5,0x6f,0xc9,0xe6,0x71,0x51,0xc2,0x6a,0x31,0x9f,0x17,0x59, + 0x0a,0x54,0xc9,0x7d,0x0b,0x2e,0x14,0x1a,0x70,0x1d,0x7b,0xcf,0xd8,0xa2,0x2c,0x43, + 0xfb,0xae,0x61,0xef,0x2e,0x74,0xeb,0x9a,0x67,0xe9,0xf7,0xf9,0xe6,0x7c,0xa0,0xbe, + 0x5a,0xd3,0x87,0x7a,0x51,0x93,0x13,0xf5,0x38,0xc5,0x6d,0x1c,0xe3,0xee,0x2a,0x2a, + 0xbf,0x00,0x22,0xb8,0x98,0x0f,0x7b,0x48,0x8f,0x7e,0x59,0x14,0x37,0x21,0x45,0x94, + 0x93,0x0e,0x2d,0x37,0xc3,0xcf,0xf1,0xd6,0x80,0x7d,0x7a,0x00,0x6f,0xc9,0xda,0xf4, + 0x28,0x9d,0xfd,0x5a,0x2a,0x95,0x37,0xc7,0xba,0xd6,0x3d,0x93,0x3b,0x73,0x9a,0x96, + 0x3e,0x7c,0xb8,0xe1,0xe4,0xf8,0xa1,0xc3,0x3d,0x07,0x59,0x1a,0x09,0x87,0x4f,0x2a, + 0x2e,0x43,0x21,0x34,0x1f,0xb4,0x5f,0x59,0x37,0xf6,0x35,0xf8,0x2c,0x51,0x79,0x97, + 0xef,0x44,0x0a,0xc7,0xb7,0xbd,0xe1,0xb7,0xba,0x33,0xb8,0xf8,0x5d,0xd5,0xae,0x9e, + 0xee,0xba,0x4e,0x79,0xad,0xc0,0x8c,0x51,0x15,0x6c,0xce,0xbc,0xca,0x75,0x5d,0xb6, + 0xfa,0xac,0x8d,0x9c,0x1d,0x17,0x45,0x85,0x30,0x85,0x59,0x41,0x45,0x3f,0xaa,0x32, + 0x53,0x4b,0x7a,0x45,0xd2,0x2a,0x85,0x1b,0xdf,0xfa,0x72,0x5a,0x2d,0xb4,0x35,0xa1, + 0xc3,0x83,0xf9,0x5d,0x2d,0x2d,0x7d,0xe7,0x17,0xc5,0xd3,0x1e,0xd5,0xf9,0xd1,0x71, + 0x27,0x67,0x61,0xfd,0xd8,0x9f,0xfb,0x9a,0x2e,0xda,0x9f,0x7c,0x48,0xa5,0x0d,0x92, + 0x79,0xfe,0x6d,0x51,0xcc,0xd3,0x68,0x32,0x4e,0xc1,0xbf,0xe4,0x0b,0xf8,0x77,0x0f, + 0xf6,0xa2,0xb3,0x79,0xe6,0xda,0xfd,0x70,0x9e,0xbf,0xbe,0xfd,0x8c,0xc7,0xfe,0x88, + 0xfd,0xb2,0x45,0x8c,0xe4,0xf8,0xe0,0xcb,0xca,0x64,0xaa,0x96,0xf9,0x37,0x63,0x37, + 0x0d,0x2b,0xb4,0xaf,0xb0,0xcb,0xeb,0x66,0x27,0xb5,0x6b,0x00,0xb1,0x0a,0xdc,0x4b, + 0x09,0xc6,0x15,0xf6,0x2b,0x15,0x5e,0x06,0xe0,0x5d,0x52,0x88,0x70,0xd0,0x4d,0x9b, + 0x1e,0x6a,0x6c,0x74,0x34,0x89,0xf4,0x96,0xaa,0xa3,0x54,0x53,0x77,0x83,0x8e,0xaa, + 0x53,0x07,0xb6,0x73,0x2e,0x1d,0x71,0x53,0x2c,0xd8,0xe9,0x71,0x7f,0x74,0xc2,0xa9, + 0x5c,0x52,0x19,0x11,0x01,0xfd,0x5f,0x5d,0x90,0xc6,0xea,0x82,0x0e,0x72,0xc9,0x9f, + 0xbd,0xba,0x78,0xce,0x34,0x92,0xd7,0x53,0x3a,0x60,0x99,0x32,0x03,0xeb,0x5f,0x4e, + 0x11,0x5a,0xaf,0xfe,0xbd,0xbd,0x77,0x6f,0x6f,0xdb,0x46,0xfa,0x86,0xff,0xf7,0xa7, + 0x60,0xb8,0xbd,0x1d,0xb2,0xa2,0x64,0xd9,0x39,0xb4,0x95,0xc2,0xe8,0x72,0xd3,0x74, + 0x9b,0xbb,0x69,0x92,0x3b,0x76,0xb7,0xbb,0x8f,0xe3,0xcd,0x23,0x5b,0xb4,0xad,0x46, + 0xa7,0x25,0xe5,0xd8,0x59,0xc9,0xef,0x67,0x7f,0xe7,0x37,0x83,0x21,0x40,0x88,0x92, + 0x9d,0x66,0xf7,0x39,0xa7,0x57,0x2d,0x12,0x87,0xc1,0x70,0x00,0x0c,0x06,0x83,0xc1, + 0x4c,0xc5,0x16,0xe4,0x82,0x68,0xdd,0x0a,0xa4,0x0d,0xe2,0x09,0x69,0x70,0x96,0x81, + 0x37,0xc8,0x9a,0x82,0xee,0x1a,0x31,0x92,0x03,0xd5,0xe8,0x0d,0xa8,0x89,0x19,0x6c, + 0xac,0x36,0x33,0x3a,0x35,0xe0,0x84,0x49,0xe9,0x1d,0xaf,0xe0,0xc0,0xee,0x54,0xbd, + 0x1d,0x40,0x9c,0xdf,0x64,0xd8,0xb9,0x71,0x45,0x54,0xdb,0x7e,0xdd,0x4d,0x04,0xcf, + 0xf9,0xc9,0x58,0xa7,0x0b,0x80,0x1a,0xe2,0x1d,0xc2,0x86,0x97,0x2d,0x05,0xa6,0x56, + 0xe1,0x0e,0xd2,0x8d,0x82,0x13,0x78,0x73,0xca,0x55,0x31,0x8f,0xed,0x8f,0x18,0xf5, + 0x67,0xc3,0xdc,0xde,0x4c,0xad,0x25,0x48,0xfd,0xa7,0xbe,0xe0,0xcb,0x3b,0xf3,0x4f, + 0x7f,0xfc,0x86,0xd1,0xff,0xf4,0x0b,0x46,0x7a,0x58,0xd1,0xa5,0x64,0xff,0x4a,0x51, + 0x2b,0xf8,0x9e,0x4d,0x86,0xd2,0x7f,0xcd,0xcd,0xa0,0xff,0xe9,0x17,0x83,0xfe,0xd0, + 0x25,0x9e,0x7f,0xdf,0x1d,0x9e,0xfa,0x1e,0xac,0xbf,0x9f,0xa3,0xeb,0x35,0xb7,0x76, + 0xbf,0xa8,0x5e,0xd3,0xc1,0xb0,0x32,0x66,0xc2,0xf1,0x1f,0xbc,0x62,0x73,0xc7,0x1b, + 0x36,0x77,0x9b,0x16,0x6f,0x64,0x74,0xd1,0x6c,0x5a,0x27,0xe9,0x1c,0x2a,0xe7,0xe2, + 0x71,0xc6,0x9e,0x08,0x70,0xb9,0xc1,0x18,0xac,0x41,0x26,0xc7,0xec,0x65,0x4e,0xd2, + 0x0c,0xa8,0x0a,0x60,0xc9,0x0e,0xae,0x6f,0x26,0x31,0x8e,0xd3,0x86,0x93,0xdf,0xf9, + 0x28,0x4d,0x2e,0x55,0xa8,0x38,0x23,0x14,0xd8,0xa0,0x2e,0x61,0x57,0x01,0xa2,0x87, + 0x31,0xd2,0xff,0x9b,0x2c,0x1f,0x92,0x94,0x46,0x8a,0x24,0xb6,0xb2,0xdd,0x41,0x66, + 0x11,0x30,0x4c,0x2d,0x29,0x77,0xc2,0xbe,0x44,0xbe,0x17,0x3a,0x0a,0xb4,0xdb,0x84, + 0x7c,0x0f,0x65,0xa5,0xa8,0x2e,0x06,0x06,0xed,0x5f,0xfa,0x05,0x78,0x7d,0x71,0x35, + 0x84,0x51,0x15,0x44,0x46,0x30,0x39,0x29,0x53,0xca,0x8d,0xd4,0xbb,0xd3,0xab,0x2f, + 0xc7,0x5b,0xa0,0x7e,0x36,0xe2,0xfb,0x03,0xd2,0x7e,0xf7,0xaf,0x02,0x8e,0x0f,0xa0, + 0x78,0xef,0x8f,0xf8,0xfe,0xd8,0x64,0x20,0xa6,0xd7,0x97,0xa3,0x11,0x46,0xbb,0x94, + 0x51,0xaa,0xa3,0xd2,0xbf,0x88,0xe4,0x04,0xea,0x33,0xd1,0xd6,0xdd,0xf6,0xa0,0x4a, + 0x70,0x4a,0xc6,0x25,0x37,0x4d,0x64,0x7f,0x07,0x62,0x7c,0xa6,0x56,0x69,0xff,0x02, + 0x64,0xaf,0x3f,0x17,0x57,0x08,0x0b,0x74,0xa2,0xa9,0x1b,0x27,0xf6,0xe3,0x45,0x63, + 0x2c,0x57,0x72,0x9b,0x9b,0xbc,0xfa,0x45,0x5c,0x4a,0xe5,0x09,0x04,0x7c,0x0a,0xe8, + 0x7d,0x78,0x56,0xde,0x0b,0x7d,0x5d,0x2a,0x06,0xdf,0xfe,0x18,0x80,0x5b,0x5d,0x1a, + 0x69,0x66,0x58,0x0c,0x4f,0x46,0xe8,0x1f,0x4a,0x1d,0x41,0x72,0xc1,0x31,0xc9,0x97, + 0x7e,0xaf,0x6e,0xdb,0x18,0x87,0x4f,0x7f,0x70,0x5a,0xe8,0x66,0x27,0xf7,0xe7,0x73, + 0x99,0x11,0xb0,0xc9,0x2a,0x76,0xeb,0x22,0x9e,0x16,0x41,0xf4,0xe6,0xe0,0xed,0xfe, + 0x2f,0x72,0x7c,0x23,0x07,0x82,0xf1,0x97,0x7f,0x4c,0x89,0xc7,0x97,0x6d,0xe2,0xd7, + 0xda,0x3e,0x98,0x53,0xd8,0xb9,0x1d,0x98,0xf5,0x32,0xb0,0xe2,0x33,0xbf,0xfe,0x43, + 0xb6,0x24,0xfb,0x34,0x21,0x0f,0xff,0xba,0xae,0x84,0xd9,0x08,0x61,0x15,0xd1,0xc1, + 0xc4,0xf4,0xbb,0x8b,0x64,0xeb,0xcf,0x20,0xbb,0xa9,0x05,0x3b,0xb8,0xd3,0x65,0xdb, + 0x03,0x61,0xc7,0xba,0xcf,0xbf,0xab,0xfa,0x42,0x49,0xa2,0xf5,0x3c,0xf3,0x8f,0xc7, + 0xfe,0x39,0xfe,0x97,0xf6,0xd5,0x2b,0x1d,0x0a,0x0e,0xa6,0x17,0xd8,0x8e,0xdf,0x1d, + 0x57,0x3b,0x9c,0x56,0xb0,0xde,0x53,0xd5,0xd9,0x83,0xc7,0x6b,0xc5,0xc0,0xe9,0xd9, + 0x3c,0xc3,0x55,0x66,0x15,0xf6,0xc0,0xa3,0xfc,0x09,0x41,0x01,0x95,0x9b,0x04,0x23, + 0xd1,0xb3,0x1e,0xf2,0xb7,0x1a,0xb7,0x3e,0x47,0xf5,0xb1,0xe9,0xaa,0x2b,0x19,0xbd, + 0x78,0x77,0x5d,0x37,0x43,0x81,0x69,0x8f,0x51,0x93,0x1c,0xbc,0xfa,0xe5,0xcd,0xc6, + 0x0b,0x61,0x87,0x6f,0x8c,0x23,0xbb,0xbb,0x8a,0x69,0x93,0xf9,0xac,0x56,0x2a,0xf3, + 0x6e,0x23,0xcd,0xa6,0xd3,0x11,0xca,0x92,0xe0,0x7d,0x5e,0x4b,0xd9,0xe7,0x93,0xb9, + 0xc8,0x2a,0x70,0x09,0xab,0x82,0x0a,0x9f,0x2b,0x6d,0xbe,0xdd,0xb0,0xc9,0x9e,0xe9, + 0x9f,0x04,0x8a,0x18,0xd2,0xeb,0x83,0x17,0x7f,0xbd,0xcb,0xc6,0x60,0x6e,0xaa,0xdc, + 0xe5,0x7b,0x7e,0x39,0x38,0xfc,0xe6,0x97,0x1f,0x0e,0x93,0x5f,0x1e,0xb4,0xf6,0x5a, + 0xed,0xe4,0x17,0x8a,0xde,0xb6,0xdb,0x5a,0x63,0x99,0x5c,0xa7,0x07,0x80,0xf7,0xec, + 0x12,0xd7,0x5f,0x0f,0x9f,0x61,0x63,0x45,0x3b,0xa5,0x8d,0x63,0xd8,0xc7,0xb3,0x25, + 0x75,0xd4,0x50,0xb5,0x1c,0xbc,0xbb,0x0f,0x2d,0x1e,0xb7,0x30,0x7a,0x8c,0x87,0x80, + 0xb6,0x29,0x93,0xb9,0xae,0xc4,0x72,0x0c,0xa7,0x17,0x83,0x06,0x5f,0xc4,0xbb,0x8b, + 0xc9,0x78,0xb6,0x99,0x63,0x7b,0x9d,0x06,0x74,0x20,0x82,0x8f,0x2f,0x27,0xc3,0xf9, + 0xe6,0x9d,0x82,0x6d,0xa1,0x55,0x56,0xa8,0xef,0xb8,0x5b,0xf7,0xe0,0xb8,0xb2,0x79, + 0xc7,0x3d,0x38,0x2e,0x5c,0x38,0x7b,0xf0,0x75,0x62,0x38,0x5b,0x2b,0x40,0xb4,0x46, + 0x79,0x3d,0xda,0x14,0xbb,0x06,0x5b,0x59,0x6d,0xf3,0xf5,0xee,0xc6,0x39,0x0e,0x21, + 0x46,0x23,0xd6,0x20,0x60,0x45,0xb5,0x77,0x0c,0xf3,0x8c,0xa6,0x3c,0xcd,0x04,0x35, + 0x3b,0x73,0xaf,0x43,0xb7,0x82,0x1f,0x87,0x54,0x16,0xba,0x4d,0xa4,0xbe,0x78,0x23, + 0xe2,0x3c,0x6e,0x02,0xa8,0x4f,0xb2,0xa9,0x88,0x51,0x62,0xc7,0xaf,0x2e,0x7c,0xff, + 0xd7,0xf0,0x87,0x48,0xdf,0xf5,0xef,0x73,0x88,0x08,0xe0,0xff,0xd3,0x3d,0x22,0x02, + 0x89,0xff,0x85,0x5c,0x22,0x02,0x9d,0xff,0xd9,0x3e,0x11,0x81,0xc4,0xff,0x15,0x4e, + 0x11,0xff,0x8f,0x70,0x7b,0xa8,0x26,0x89,0xbb,0xcd,0xdd,0x07,0xb8,0xc5,0x98,0x67, + 0xea,0x8a,0xd0,0x3a,0x27,0x14,0x0f,0xad,0x1b,0x5d,0x20,0x3a,0xd7,0x94,0xaa,0x56, + 0x5a,0xc5,0x29,0xe0,0x0f,0xb4,0x93,0xc4,0x41,0x22,0xf8,0x99,0x7e,0x7b,0x17,0x0f, + 0x5f,0x72,0x5b,0x75,0xb7,0xbd,0xf7,0xd0,0x4e,0x29,0x35,0xe8,0xa8,0x3f,0xf5,0xb6, + 0x33,0x06,0xe5,0x50,0x2c,0xac,0xd1,0x64,0x1b,0x2d,0xf6,0xe5,0x78,0xfd,0x2d,0xd4, + 0x09,0x9c,0xbc,0xb1,0xfc,0x31,0x22,0x48,0xc5,0x1c,0xee,0x26,0x70,0x1d,0x2a,0xae, + 0xad,0x22,0x7d,0x61,0x3d,0x7d,0x45,0xe6,0x02,0x43,0x7c,0xe7,0xc3,0x6f,0x4f,0x57, + 0xdc,0x87,0x64,0x3b,0x81,0x51,0x44,0xbd,0xbd,0xf1,0xe7,0xbb,0x33,0x19,0x4c,0xdf, + 0x82,0xe8,0xc6,0x01,0x09,0x9e,0xb8,0x5f,0x3f,0xd7,0x3f,0x8a,0xfa,0xe3,0xa6,0xb1, + 0x02,0xbe,0x5c,0x69,0xe0,0x25,0x92,0xd1,0x80,0xf8,0xf6,0xa6,0x67,0x0b,0xfd,0xb6, + 0x45,0x9c,0x55,0x4b,0x77,0x5b,0xc5,0xd5,0xb8,0x52,0xb8,0x01,0xaa,0x73,0xe5,0x26, + 0xad,0xc0,0x0e,0xb6,0xd3,0xfe,0xdc,0x44,0x09,0xf4,0x23,0x2b,0x79,0x8a,0x51,0xf4, + 0xb5,0x1f,0x25,0x15,0x92,0xe0,0xba,0x5b,0x7d,0x1c,0x58,0x19,0x74,0xd0,0xc7,0x3b, + 0x75,0x29,0x2e,0xd4,0x81,0xc9,0xf4,0x67,0x41,0xf4,0xf3,0xf7,0x31,0x83,0x7d,0x22, + 0xa1,0x81,0x19,0x14,0x62,0x39,0x7f,0x68,0x22,0xdf,0x06,0x7e,0xe0,0x13,0x9e,0x1d, + 0x29,0xa4,0x0e,0x21,0x70,0xc7,0x1c,0x07,0x20,0x7a,0x19,0xaa,0x1e,0xce,0x04,0xe5, + 0xea,0x01,0x6d,0x3c,0xae,0x95,0x4d,0x41,0x53,0xe8,0xe9,0x9f,0x5d,0x14,0xb5,0xbb, + 0x19,0x94,0x35,0xdb,0x99,0x3b,0xbb,0x07,0xc4,0xd4,0xe2,0xe9,0x1a,0x7c,0xca,0xe6, + 0xad,0xdb,0x86,0xc6,0xe9,0xe8,0x76,0xf1,0x4e,0x9b,0x76,0xe3,0xa4,0x7b,0xe5,0x10, + 0x8e,0x04,0xdf,0x28,0x4f,0x7e,0xa6,0x44,0x9f,0x0b,0x3d,0x29,0xb9,0x98,0xad,0xc4, + 0x75,0xf0,0xd6,0x4b,0xdf,0x94,0x56,0x20,0xf1,0xf5,0xde,0xbb,0x09,0x1d,0x5b,0xe5, + 0x04,0xc2,0x72,0xfc,0x1b,0xfb,0x85,0xc1,0x14,0xda,0x1e,0xf5,0xf3,0xbc,0x1b,0x30, + 0x24,0x6f,0x92,0x7a,0x48,0x7c,0xae,0x70,0x43,0x3f,0x3f,0x65,0xa3,0x19,0x1a,0xb9, + 0xa0,0x5f,0x05,0xfe,0x79,0x5f,0x68,0x4f,0x90,0x3e,0xf7,0x33,0x87,0x67,0xd1,0x3d, + 0x7a,0x6c,0x9d,0x5c,0x16,0x9f,0x62,0x7a,0x78,0x7b,0x39,0x89,0x8e,0xee,0x5b,0x78, + 0xf7,0x8f,0x09,0x31,0xfb,0xfa,0x2f,0xff,0x76,0xb6,0x5d,0xc4,0xc7,0x9f,0xe2,0x61, + 0xa3,0x58,0xa2,0x81,0xf0,0xe4,0xbb,0xf5,0xad,0x76,0x97,0xe8,0x84,0xc5,0xa3,0x7c, + 0x2f,0x03,0x31,0xeb,0x1c,0xbb,0x26,0x4d,0xda,0x70,0x53,0xa3,0x0c,0x57,0xe6,0x8f, + 0x48,0x13,0x47,0x4c,0x22,0x78,0xe8,0xd0,0xf4,0x05,0x76,0x17,0xe1,0xe1,0xc4,0x13, + 0x0c,0xeb,0x45,0xf3,0x7a,0x09,0x7e,0xab,0x98,0x65,0xa3,0x11,0xef,0x0c,0x4b,0x61, + 0x90,0x1d,0x03,0x91,0xe4,0x04,0xf1,0x82,0x76,0x0d,0x53,0x6f,0x67,0x0d,0x24,0x82, + 0x3e,0xef,0x02,0x49,0x92,0xf0,0x16,0x2a,0xfd,0x00,0xd4,0xfa,0xfc,0x6e,0xdc,0x72, + 0xbb,0xf1,0x80,0xa3,0x4a,0xa0,0x1f,0xf3,0x4b,0x5f,0x2a,0xaf,0xed,0x4c,0x13,0xfa, + 0x07,0x18,0x09,0x67,0xa7,0x18,0x40,0x4f,0x0f,0xfb,0x27,0x4f,0x76,0xf0,0x10,0x28, + 0x7d,0x0c,0x4d,0x9d,0x32,0xdb,0x97,0x98,0x89,0x52,0x4c,0x12,0x06,0x36,0x81,0xba, + 0xb5,0x80,0x87,0x14,0xa9,0x56,0x81,0xfd,0xbc,0x38,0x35,0x65,0x68,0x34,0x8f,0x87, + 0x45,0x51,0x01,0x2d,0x41,0x5b,0xc6,0xf4,0x65,0x43,0x6a,0x17,0x21,0x85,0xc5,0x7a, + 0x80,0xbe,0x06,0x52,0x95,0xdc,0xbe,0x56,0x6c,0xbc,0xcf,0xaa,0x89,0x7a,0xb1,0x63, + 0xe3,0xb6,0xe8,0x07,0x43,0xfa,0x39,0xe9,0xe7,0x32,0x16,0xf4,0x05,0xfd,0x51,0x26, + 0x34,0x49,0x12,0x82,0xe2,0x60,0x33,0xcf,0xab,0xdb,0x3d,0x54,0x8c,0x85,0xa1,0xeb, + 0x24,0xdd,0xa8,0x48,0x16,0x78,0xd9,0x2c,0x54,0x8c,0x2d,0x46,0x55,0x11,0x02,0x1b, + 0x0b,0xd7,0x25,0x96,0x0a,0x8e,0x1b,0xe7,0xa8,0x8d,0x50,0xae,0x13,0xcc,0xdd,0x0e, + 0x6a,0x88,0x19,0x39,0x76,0x0d,0x03,0x37,0x22,0x0e,0x9c,0x1f,0x9e,0x7c,0xaa,0x84, + 0x87,0x28,0x4c,0x09,0xb1,0xd5,0xa4,0xc1,0x9a,0x5f,0xfa,0xcb,0x8d,0x89,0xdb,0x1e, + 0x3e,0x35,0xd5,0xb5,0xa6,0xd0,0xd0,0xdb,0xdf,0xde,0x4e,0xc7,0x2f,0xe2,0x66,0xac, + 0x97,0xe0,0x7d,0x2a,0x10,0x65,0xf2,0x17,0x76,0x8f,0xfa,0xef,0x6b,0x97,0x03,0xa0, + 0x70,0xbb,0xb0,0x05,0xc7,0x4b,0xd9,0xa4,0xbf,0x7c,0x97,0x51,0xe3,0x95,0xf6,0x74, + 0xd8,0x02,0x75,0xe2,0x68,0x38,0xd7,0x8d,0x25,0x16,0x02,0x25,0x35,0xea,0xad,0xf7, + 0x5c,0x56,0xae,0xee,0xd0,0x53,0xf8,0xa3,0x76,0x38,0x29,0xe9,0x7d,0x9b,0xa9,0x02, + 0xe2,0x9f,0x2b,0x8f,0xc4,0x63,0x2d,0x47,0x37,0x61,0xc7,0xa5,0x58,0x76,0xcd,0xf1, + 0x61,0x75,0x2c,0xac,0xec,0xbf,0x1e,0x62,0xff,0xe5,0x06,0xa8,0x46,0x20,0x3b,0x09, + 0x44,0x65,0x0b,0xfb,0x2e,0x91,0x57,0x43,0x9f,0x13,0x35,0xc5,0xea,0x3c,0xf3,0x63, + 0xbf,0x98,0xc8,0x55,0xd3,0x51,0x8d,0x90,0xf5,0x68,0x25,0x76,0xf2,0x77,0xdd,0x4a, + 0x40,0xbd,0x3d,0x3f,0x82,0xda,0xd9,0x79,0x0c,0xe4,0x46,0x43,0x62,0x80,0x33,0x76, + 0xf5,0xa9,0x5a,0xdb,0x68,0x9a,0xe3,0xfd,0x19,0xb6,0x1e,0x23,0xa4,0xc4,0xea,0x87, + 0x9a,0x56,0x8b,0x09,0xb4,0x51,0x67,0xa2,0xf0,0x12,0x6b,0xd7,0xd6,0x93,0x93,0x5c, + 0x57,0xa8,0x1a,0xe9,0xaf,0x56,0xf6,0xa3,0x40,0x25,0xfd,0xe2,0x43,0x36,0x48,0x82, + 0x53,0xf5,0x91,0xcd,0x5e,0xac,0x7e,0x33,0x11,0x41,0x5e,0x80,0x12,0x34,0xad,0x18, + 0x9f,0x1d,0xe4,0x1e,0xcc,0x69,0x4f,0x5f,0xde,0x10,0x45,0xba,0xdd,0xa2,0x8f,0x86, + 0xfc,0x21,0x12,0x30,0xe7,0xa0,0x7f,0x46,0x43,0x0a,0x1a,0xb3,0x67,0x17,0xa4,0x46, + 0xcb,0x7c,0x47,0x3b,0xb6,0xf8,0x9f,0xe1,0x03,0x88,0x60,0xd7,0x60,0xfd,0xcd,0xec, + 0xda,0xe9,0xf4,0xcb,0x7c,0x44,0x72,0xd2,0x7c,0x3e,0xeb,0xec,0xec,0xd0,0x1d,0xaf, + 0x16,0xd9,0x40,0xb6,0x1e,0xb6,0x76,0x81,0x84,0x81,0xb6,0x33,0x1d,0xd5,0x28,0x11, + 0x6b,0xce,0x45,0x76,0x1f,0x12,0x64,0xef,0x63,0x80,0x85,0x83,0xe1,0xfd,0x02,0xdf, + 0x6b,0xbd,0xc3,0xa0,0x19,0xab,0xff,0xf8,0x9b,0x1b,0xf3,0x27,0xe0,0xbd,0xfc,0xb0, + 0x80,0xd3,0x71,0xd8,0x3d,0x0d,0xd5,0xe1,0x87,0xd5,0x4b,0xaa,0x9f,0x19,0xd5,0x60, + 0x9a,0xae,0xd4,0x31,0x95,0x18,0x7d,0xc0,0x10,0x7e,0x4a,0xf3,0x8f,0x34,0x33,0x0b, + 0xa9,0x74,0x9a,0x67,0x44,0x4c,0x44,0xb1,0x87,0x25,0xd4,0x67,0xba,0x14,0x6c,0xaf, + 0x75,0x29,0x38,0xa0,0x78,0x51,0x1c,0xcb,0xe5,0x3c,0x9b,0x3f,0x1f,0x65,0x78,0xfc, + 0xfe,0xd3,0x8b,0x41,0x74,0xdf,0xcc,0xae,0xfb,0x71,0x8b,0x29,0xf8,0x72,0xc8,0x8e, + 0xa4,0xc6,0xf4,0x35,0xd1,0x7d,0x48,0xc5,0xf7,0xef,0xe6,0x83,0x10,0x9d,0x8a,0xfb, + 0x28,0xd6,0xf7,0xa0,0x60,0x7e,0xdb,0xe4,0x16,0x6d,0x84,0x4e,0x6f,0x14,0x5d,0x65, + 0x2d,0xda,0xa4,0x4c,0xf7,0x07,0xd4,0x93,0x1a,0xeb,0x18,0xcf,0xca,0x79,0x6a,0x26, + 0x3c,0xfb,0x58,0x44,0xac,0x3b,0x2a,0xe5,0xb4,0x26,0x5e,0x3a,0x75,0x2b,0xee,0x86, + 0x9e,0x93,0x89,0x3e,0x73,0xcb,0x8e,0x8b,0xf3,0x12,0x81,0x15,0x57,0xeb,0x1e,0x13, + 0x0a,0xcd,0xa7,0xcf,0x3c,0xc1,0xdd,0x42,0x1b,0xce,0xd6,0x0f,0xce,0x57,0xab,0x8e, + 0x3a,0x3b,0x98,0xe2,0x4f,0xfa,0x55,0x08,0x90,0x4d,0x3f,0x84,0xda,0xc7,0x35,0x1d, + 0xc2,0xfc,0xb0,0x12,0xc0,0xff,0x11,0x6f,0xaa,0xfb,0x8a,0xde,0x1a,0x14,0xba,0x0e, + 0x88,0xc7,0x35,0x20,0x5c,0x34,0x4e,0xa7,0x97,0xd0,0x70,0xd5,0x75,0x35,0x0d,0xe1, + 0xe1,0x8c,0x4e,0x5a,0x43,0x04,0x39,0x32,0x96,0x86,0xdd,0x2d,0xa2,0x5a,0x70,0xf0, + 0xfc,0xd5,0xe1,0x8b,0x57,0xcf,0x5f,0xa6,0xe1,0xd7,0xe6,0x9f,0x64,0x50,0xa9,0x74, + 0x01,0xeb,0xc5,0x4e,0x18,0x26,0xec,0x14,0x7a,0xd0,0xe1,0xd1,0x96,0x90,0x09,0x21, + 0x3c,0xb7,0xda,0xb7,0x67,0xa3,0xa1,0x79,0x81,0xaa,0xe9,0x4d,0xf1,0xe1,0xf1,0x43, + 0xf3,0xae,0xea,0xdb,0x03,0x71,0xfb,0x5b,0x82,0x98,0x64,0xd9,0xa0,0x50,0xad,0xa8, + 0x49,0x63,0xc3,0x68,0x75,0x63,0x68,0xd2,0x0a,0xf5,0x34,0xee,0xbc,0x3b,0x6d,0x93, + 0x78,0x5e,0x74,0xda,0xc9,0xe9,0xd9,0x79,0x67,0x42,0xd6,0x21,0x09,0xac,0xe0,0x3a, + 0x8b,0x9b,0x64,0x30,0xcc,0xe7,0x9f,0xf0,0x20,0x51,0x1f,0x8a,0xce,0xd1,0x71,0x32, + 0xc1,0x9e,0x1c,0xa5,0x79,0x33,0x8f,0xe3,0xb4,0x9c,0x5e,0x20,0xad,0x76,0x16,0x50, + 0x33,0x70,0x19,0xa8,0x09,0xe8,0xe1,0x26,0xc1,0x32,0x7d,0x48,0x3d,0x91,0xcd,0xf1, + 0xf9,0x78,0xd3,0x1a,0x78,0x7e,0x3e,0x9b,0x9e,0x5e,0xd0,0xb3,0x38,0xd6,0xd2,0x37, + 0xe3,0xc3,0x94,0xf2,0xc1,0x7b,0xf5,0x5b,0x4d,0xa1,0x97,0x64,0xb0,0xf4,0xac,0x3f, + 0x83,0xbd,0x85,0xe0,0x0a,0x52,0x29,0x05,0x70,0xf1,0x84,0xb7,0x61,0x5a,0xe9,0x86, + 0xe2,0x94,0x5e,0x4e,0xe4,0x58,0xe5,0xab,0xa8,0x88,0x17,0x66,0xba,0x97,0x1c,0x83, + 0xa4,0xe1,0xfc,0x93,0xa8,0x1d,0xa7,0x39,0x15,0xb8,0x71,0xca,0xbb,0x15,0xf6,0xf3, + 0x9c,0xdc,0x19,0xc0,0xd3,0xd6,0x14,0x02,0x4e,0xab,0x18,0x81,0xed,0x43,0xdd,0x19, + 0xd5,0xc3,0x82,0xdc,0x5a,0xc4,0x2e,0x3c,0x96,0x08,0xa2,0x71,0xbc,0xc0,0xa0,0x98, + 0xa7,0x5f,0x45,0xe1,0x9f,0x38,0x29,0x8c,0xbb,0xf3,0x16,0x58,0xdf,0x33,0x89,0xd0, + 0x9e,0x8e,0xe9,0xdd,0xf2,0x2b,0x9a,0x2d,0x11,0x6f,0xe1,0xa9,0x1c,0xef,0x2c,0x8d, + 0x47,0x86,0x68,0xde,0x7a,0x7f,0x11,0x77,0xf1,0x37,0xa5,0xbe,0xd1,0x54,0x6d,0x2e, + 0x8a,0x17,0xf3,0x15,0xae,0xa7,0x80,0x6e,0x92,0x3d,0x72,0xbf,0xe0,0x22,0x47,0xf2, + 0x9d,0xf3,0xb5,0x30,0x6b,0x9d,0x9c,0x53,0x02,0xd5,0xe3,0x4d,0x58,0xb4,0x73,0xb4, + 0xfd,0xe4,0x69,0x78,0xbc,0x73,0x9e,0x94,0x0d,0x9c,0x6a,0xf1,0x45,0xb8,0x1d,0x76, + 0x42,0x3e,0x48,0x0e,0x93,0xf0,0x09,0x9e,0x47,0x73,0x3c,0x3e,0xc5,0xe3,0x39,0x1e, + 0xef,0x87,0xf7,0xe9,0xf1,0x1f,0x97,0x53,0x7a,0xb9,0x39,0x3a,0x3d,0xbe,0x71,0xdb, + 0xae,0xd1,0xef,0x93,0x40,0x19,0x2f,0x78,0xf6,0xf0,0x0e,0x34,0xad,0xe7,0xf0,0x5c, + 0x0e,0x49,0xfb,0x73,0x42,0x98,0x04,0x45,0xfa,0xc0,0xca,0x91,0x42,0x18,0xc7,0xdd, + 0x2d,0xe8,0x05,0x18,0x4a,0x2c,0xe8,0xca,0xac,0x04,0x21,0x52,0x4e,0x6e,0xb1,0xc4, + 0x9a,0x3a,0x67,0x24,0x54,0xc7,0x66,0xa0,0x60,0x4f,0x36,0xbf,0x1d,0xb7,0x08,0x9a, + 0x76,0x7b,0x4d,0xca,0xfd,0x04,0xa6,0xd8,0x09,0x71,0x30,0x61,0xca,0x14,0x1e,0x7a, + 0xf6,0x18,0x24,0x4c,0xa4,0x0e,0x4b,0xa8,0x1d,0xb3,0x0d,0x8e,0xeb,0x6b,0xe9,0xee, + 0x22,0x4c,0xa2,0xd5,0x86,0xe2,0x46,0x28,0xbb,0x8d,0x12,0xbd,0x58,0x3f,0x81,0x43, + 0x29,0x46,0xf4,0x6a,0xe9,0x2d,0xb1,0x32,0xf6,0x67,0xcf,0x69,0xa1,0x85,0x85,0x51, + 0xa4,0xb5,0xca,0xee,0xdf,0xf9,0xfb,0xd1,0xbb,0xeb,0xbd,0x76,0xf3,0xdd,0xf5,0x37, + 0xd9,0xf1,0xe2,0xdb,0x64,0xf7,0xd1,0xcd,0x57,0x3b,0x2d,0x78,0x65,0xb6,0x65,0x1d, + 0x78,0x97,0x33,0x52,0xb9,0x65,0x07,0x90,0x08,0x0e,0x4c,0x3c,0xcf,0xc8,0xf4,0x5e, + 0x81,0xc4,0x94,0xc6,0x1f,0x18,0x20,0x68,0xcc,0x09,0x61,0x72,0x02,0x0d,0x7e,0xce, + 0x73,0xa0,0x1a,0x08,0x14,0x98,0x4b,0xa6,0x33,0x78,0x65,0x80,0x44,0xb2,0xe2,0x24, + 0xf7,0xb8,0x86,0x2d,0xe7,0x76,0x02,0xe6,0xcb,0xcc,0x9c,0x55,0xbf,0xc9,0x26,0x90, + 0x54,0x7b,0x11,0x27,0x9a,0xb7,0x37,0x1a,0xde,0x83,0x90,0x01,0xdd,0xb7,0x7a,0x21, + 0x23,0x5e,0x39,0x91,0x0d,0x66,0x28,0xcc,0xfe,0x37,0x39,0x3a,0xd2,0x70,0xae,0x39, + 0x45,0x42,0x4f,0x88,0x9c,0xe4,0x38,0xf1,0xcf,0xae,0xfc,0xe8,0x9d,0xe1,0x56,0x67, + 0x5d,0x9b,0xe8,0xe4,0x3f,0xd0,0xa8,0x36,0xc9,0x72,0x6c,0xbf,0xda,0xd9,0x5d,0xf8, + 0xa7,0xf6,0x7c,0x13,0xd6,0xb9,0x25,0x0c,0xf8,0x2a,0x95,0x1e,0x96,0x6c,0xc0,0x7d, + 0x23,0x72,0x6f,0x33,0x35,0xf0,0xb6,0x91,0xa3,0x2e,0x68,0x41,0x98,0x4d,0x2d,0xbe, + 0x90,0x3d,0x59,0xb7,0xc3,0xc7,0x35,0xda,0xb5,0xad,0x30,0x36,0x74,0xd1,0x51,0x82, + 0x01,0xc1,0xcd,0xbf,0x2f,0x07,0x6e,0x85,0x32,0x08,0x49,0xb4,0x29,0x4a,0x6a,0x58, + 0x03,0x0f,0x07,0x7b,0xef,0x05,0xa8,0x04,0x78,0xad,0x40,0x24,0x50,0x28,0xf0,0x87, + 0x49,0xf6,0xf9,0xa8,0x4c,0xa6,0xde,0xc7,0x79,0xa8,0x88,0xe7,0x5b,0x09,0xf3,0x1a, + 0x5c,0xf4,0x01,0xdf,0x83,0x5d,0xe2,0x99,0xf9,0xbd,0x53,0x92,0x16,0xc0,0x2e,0x27, + 0xd6,0x6d,0xa8,0x91,0x3c,0x4e,0xe9,0x9b,0x86,0x98,0x9b,0x98,0x17,0xbc,0x96,0xb7, + 0x14,0xe8,0x72,0x19,0x52,0x21,0x5a,0xe2,0xc2,0xa3,0x55,0xb7,0x8b,0xc7,0x61,0x4c, + 0x8c,0x23,0x7f,0x4e,0xd7,0x93,0xec,0x7a,0x92,0x8d,0x68,0x4e,0x67,0xa3,0x5b,0xa6, + 0xe5,0x72,0x79,0xaf,0x6c,0x35,0xee,0xa2,0xbc,0x3b,0x3d,0x7d,0xce,0x63,0x8b,0xba, + 0xa4,0x11,0x73,0x87,0x4b,0x8d,0x90,0x5b,0x19,0x9a,0x36,0xff,0x24,0xfb,0xe2,0xae, + 0xb4,0x90,0x89,0x3f,0x56,0x79,0x24,0x7f,0x8c,0x2e,0x47,0x66,0x1e,0x47,0x90,0xde, + 0xe2,0x05,0x16,0x94,0x15,0x8e,0xb6,0xbd,0x8d,0x4c,0xf9,0x8b,0x99,0xaf,0x53,0xfe, + 0x5e,0x9a,0x52,0x2c,0xec,0x0c,0xc1,0x97,0x06,0x54,0xb5,0x86,0x3f,0x31,0x1b,0xea, + 0xd6,0xf3,0x0b,0x1f,0x5a,0xb7,0x96,0xd5,0x02,0x71,0x17,0x75,0x52,0x15,0xcf,0xff, + 0x92,0xe5,0xca,0x83,0xcf,0xae,0xd0,0xfd,0x67,0x57,0xe8,0xf2,0x64,0x9c,0xee,0xfc, + 0x3d,0xfa,0xd8,0x7b,0x37,0x68,0xbc,0x6b,0xe9,0x9f,0xa8,0xd7,0xe1,0xdf,0xb8,0x17, + 0xef,0xb4,0xb2,0xeb,0xec,0x34,0x3a,0xbb,0x8a,0xcd,0x2a,0x99,0x8e,0x7b,0xe3,0xa3, + 0xdd,0xe3,0x4e,0xc4,0xf5,0x2f,0x27,0x1f,0x26,0x88,0xc7,0x86,0xe3,0x1a,0xa8,0xbd, + 0x64,0x75,0xdd,0x69,0xd2,0x1e,0x33,0x6a,0x2e,0xbf,0x8a,0x65,0x91,0x40,0xf5,0xb8, + 0x68,0xa4,0x21,0xd2,0xc3,0x6e,0xe0,0xfc,0xdb,0xd9,0x09,0x5e,0x1f,0xee,0xbf,0x7f, + 0xf6,0xd3,0xfe,0x2b,0x12,0x95,0xdf,0x1f,0xee,0xff,0x39,0x3d,0xc9,0xe6,0x7d,0x14, + 0xdc,0xe2,0x1b,0x81,0x0c,0x0e,0x49,0xb5,0xf0,0x90,0x01,0x80,0x02,0xa9,0x1f,0xe0, + 0x9d,0xef,0x89,0xea,0x99,0x70,0x42,0x00,0xf8,0x90,0x79,0xcb,0x2c,0x65,0xf4,0xe5, + 0x3c,0xb5,0x7a,0x05,0xad,0x91,0x51,0xd8,0xd0,0xf7,0x46,0x18,0x87,0x9d,0xa2,0xba, + 0x2c,0xce,0x86,0x11,0x42,0x90,0x24,0x74,0xb2,0x5a,0x10,0xed,0xf0,0x93,0xe2,0xcf, + 0x72,0xb9,0xb8,0x11,0x72,0xa0,0x3f,0x58,0x4a,0x4d,0x99,0xb7,0xf0,0xa3,0x08,0x18, + 0x28,0x47,0xe2,0x20,0x71,0xbd,0xd8,0x3e,0x62,0xc7,0xde,0x64,0xa7,0xd7,0x61,0x17, + 0x08,0x0f,0x5f,0x1f,0x04,0x9c,0x51,0x40,0xb5,0x4d,0xf3,0xed,0xa7,0x43,0xb2,0xab, + 0xdb,0x7f,0xf3,0x22,0xf8,0xf3,0xf3,0x43,0x62,0x29,0x74,0xbb,0x97,0x9d,0x3f,0x17, + 0x20,0x6e,0x01,0xb8,0x80,0xa5,0x0e,0xb4,0xb6,0xb7,0x8d,0x6a,0x64,0x9f,0xec,0x09, + 0x79,0x4a,0xe5,0xb0,0x0b,0xce,0x4d,0x37,0x93,0x5b,0xcf,0x14,0xfc,0xdc,0xcb,0xa5, + 0xe1,0xc1,0x40,0xd8,0x4a,0x79,0x94,0x52,0x29,0xf3,0xd8,0xdd,0xaa,0x97,0x1a,0x51, + 0xa2,0x0f,0x18,0x11,0x89,0x89,0x6e,0xfb,0x3c,0xce,0x74,0xbb,0x9c,0xd1,0x79,0xbd, + 0x43,0xad,0x16,0x1c,0x50,0x5b,0x28,0xb9,0xcc,0x92,0xdc,0x58,0xdf,0xd3,0x34,0x79, + 0xd8,0xde,0x8d,0x17,0x94,0x64,0x29,0x98,0x3a,0x34,0x8c,0x21,0xd3,0xbc,0xc4,0x2b, + 0xa1,0x5b,0x12,0x3a,0xcf,0xa7,0x39,0x7f,0x12,0x3f,0x45,0x21,0x12,0x69,0xc8,0x69, + 0x9e,0x42,0x07,0xec,0x6a,0xe2,0x28,0xdb,0xa7,0xd7,0xb4,0x6c,0xeb,0x9e,0xdb,0x56, + 0x77,0x7e,0x41,0x5a,0x0a,0xdb,0x42,0xf9,0x4d,0x79,0xeb,0xf7,0x02,0x14,0xa0,0xbe, + 0x9b,0xbb,0x8c,0x4f,0xbf,0x65,0xfa,0x21,0x96,0xaa,0x0e,0x4a,0x97,0x13,0xdc,0x0f, + 0x03,0xcf,0x15,0x1f,0xd6,0x62,0x64,0xa5,0x06,0x5a,0x84,0xac,0x02,0xc7,0x08,0xba, + 0xf1,0xc9,0xf4,0xbb,0x80,0xbe,0x07,0xd8,0xdb,0xdb,0xfa,0x3d,0x84,0xed,0x5e,0x7b, + 0xcf,0xf4,0x6a,0xe6,0x10,0xe0,0xf7,0x56,0x86,0xdf,0xe5,0x32,0x0a,0x79,0xe0,0x84, + 0x0d,0xad,0x42,0x62,0x6e,0xa6,0xd4,0xd0,0x34,0x4a,0x21,0x66,0x47,0xbb,0xda,0xdf, + 0xe5,0x97,0xde,0xe9,0x70,0x85,0xde,0xe8,0xaf,0xa1,0x41,0xe6,0xf4,0xe8,0xef,0xc0, + 0x6f,0x85,0x0d,0xce,0xa6,0xc5,0x5c,0xba,0xf9,0x64,0x3a,0xf8,0xa4,0x02,0xa2,0x9d, + 0x2a,0x8b,0x71,0x46,0x32,0xc9,0xa0,0x13,0x92,0x31,0xe5,0x61,0x98,0x48,0xb0,0xf7, + 0xa2,0xb3,0x08,0x0d,0xc7,0x6f,0x1e,0x7e,0x9a,0x41,0x4c,0x85,0x3f,0x5b,0x63,0xf1, + 0xbe,0x03,0x2a,0x87,0x37,0x0c,0xb0,0xf3,0x9f,0x07,0xaf,0x5f,0xb5,0x0a,0xde,0x6d, + 0x90,0x39,0x7a,0xc4,0x8d,0x54,0xf6,0x06,0xe3,0x0f,0x6f,0xb3,0x7f,0xbc,0x18,0x28, + 0x2f,0xeb,0x33,0x39,0x7e,0xa5,0x35,0xea,0x5b,0xde,0x91,0x45,0xdf,0x0a,0x0b,0x32, + 0x33,0xe3,0x34,0xff,0x34,0x9b,0x4f,0xb7,0xb7,0xe5,0x17,0x3b,0x83,0xb7,0xec,0x90, + 0xfe,0x2f,0x7c,0x63,0x37,0xae,0x4f,0x8e,0xfa,0xbc,0x50,0x15,0x7c,0xd1,0x37,0xe2, + 0x3d,0x47,0xda,0xee,0x0e,0x9f,0x7c,0xdb,0x1d,0x36,0x1a,0x71,0xff,0x68,0x78,0x9c, + 0xfe,0x42,0xdf,0xda,0xe2,0xd3,0xf1,0x88,0x1f,0x73,0xae,0x1e,0xc5,0x5f,0xd3,0x65, + 0x49,0xaa,0xbc,0x66,0x8f,0x38,0xee,0xcf,0x64,0x87,0xd8,0xb7,0x9b,0xa6,0x93,0x78, + 0x21,0xc5,0xe9,0xf1,0xc9,0xee,0xe3,0x5e,0xd8,0x26,0xea,0x90,0x00,0x7f,0x42,0xab, + 0xa9,0xd9,0x75,0xed,0x02,0x24,0x8d,0x15,0xc8,0x7c,0x11,0xe5,0x79,0x4c,0x8a,0x46, + 0xd9,0x8f,0x99,0xdc,0x37,0x00,0x55,0x68,0x09,0xbf,0x7f,0xa4,0x36,0x2d,0xc7,0xf7, + 0xff,0xc8,0xc2,0x8d,0xd5,0x0c,0x1a,0x80,0xed,0x57,0x6c,0x37,0x14,0x51,0x59,0x00, + 0x2c,0x32,0x4e,0x8e,0x63,0x46,0x47,0x18,0x20,0x68,0x40,0xdb,0xef,0x7c,0xc0,0xa2, + 0xfb,0xca,0x15,0x6c,0xe9,0x8c,0xb2,0x50,0x5c,0x3e,0xdd,0xa1,0xf1,0x88,0x6e,0xe0, + 0x2e,0x41,0xcf,0x38,0x16,0xc1,0x44,0x65,0x15,0x85,0x5d,0xff,0x65,0x9b,0x3e,0x8c, + 0x52,0x56,0x14,0x27,0x31,0x3e,0x45,0x88,0xe6,0x1b,0xc2,0xd5,0x51,0x4f,0xdb,0x20, + 0x65,0xd8,0x4b,0xb1,0x88,0x23,0xa0,0xa5,0x76,0xa6,0x47,0x0a,0x9a,0xc7,0x0f,0x5c, + 0x88,0x9e,0x01,0xd9,0x5a,0x90,0xbe,0x64,0xe4,0x42,0xdd,0xea,0x05,0xe1,0xbf,0xd6, + 0xf0,0x0c,0xa2,0xd3,0x5d,0x61,0xaa,0x30,0x84,0x0e,0xae,0x86,0xae,0x8b,0x37,0x52, + 0xba,0xa2,0x76,0x92,0x81,0x80,0x64,0x51,0x6b,0xe9,0x1a,0x35,0x1a,0xd2,0xc1,0x68, + 0x4a,0xb4,0xfa,0x13,0x62,0xaf,0x18,0x87,0x8b,0x47,0x4e,0x64,0x13,0x74,0x42,0x97, + 0xaa,0x4a,0xc9,0x58,0x7e,0x54,0x7b,0x61,0xb0,0x12,0xcb,0x8d,0xd8,0xd7,0x91,0x00, + 0x15,0x99,0x2d,0x22,0xa0,0x89,0x7a,0xad,0xba,0xeb,0x87,0x15,0xca,0x26,0x0c,0x90, + 0xaf,0x28,0x98,0xb2,0x31,0x7e,0xeb,0x90,0x40,0xfa,0x3a,0x2c,0x94,0x7c,0x0f,0x36, + 0x17,0x40,0x3c,0xfc,0xcd,0x25,0x7c,0xb3,0x99,0x8d,0x85,0x2b,0x81,0xeb,0xe3,0xca, + 0xf8,0x0a,0x3f,0x27,0x8c,0x7d,0xad,0xa7,0x7b,0x37,0x2e,0x41,0x40,0x89,0x5c,0xf7, + 0xe5,0xfe,0xab,0x56,0xa8,0x8d,0xdb,0xb8,0xbd,0x7e,0xe3,0x1c,0xc5,0x17,0x0d,0x4a, + 0x9c,0x5a,0x34,0x5f,0xb8,0x41,0x7d,0x15,0x46,0x25,0x90,0xa1,0x0f,0x44,0xe2,0x4c, + 0x69,0x49,0x2f,0x2a,0x55,0xdc,0x1a,0x42,0x19,0xf0,0xd3,0xe1,0x2f,0xa4,0x80,0x95, + 0xa0,0x84,0x1b,0x22,0x54,0xf9,0x40,0x24,0x2a,0x53,0xdc,0xd2,0x13,0x05,0x67,0xed, + 0x37,0x41,0xbf,0x6e,0x2a,0x5c,0x18,0x5a,0x62,0x30,0x5f,0xac,0x83,0xe1,0x0e,0xfd, + 0xdd,0x31,0xd7,0x0c,0xfd,0x15,0x1e,0x72,0xa4,0xee,0x15,0x0a,0xfe,0x81,0xa4,0x2f, + 0x5a,0x60,0x4a,0xc0,0x43,0xd7,0x0e,0xd5,0xf4,0xde,0x3d,0x2a,0x44,0x0f,0xdd,0x72, + 0xe2,0x70,0x12,0x21,0xd5,0xdd,0xaa,0x6e,0x2f,0x0b,0x7a,0x79,0xaf,0xdb,0x3f,0x96, + 0xcc,0xcb,0xce,0x09,0xbb,0x35,0xbb,0x0c,0xc0,0x41,0x95,0x5c,0x52,0xdf,0xcf,0x24, + 0xb9,0xbb,0x35,0xc8,0x38,0xc8,0x8d,0xbf,0xff,0xd8,0xb8,0xdd,0xa0,0xc2,0xc5,0x1c, + 0xfe,0x7f,0x0e,0x61,0xe8,0x09,0xb1,0x12,0xd0,0xe7,0xe6,0xe5,0xbd,0xe4,0x01,0x0b, + 0x4d,0x22,0xf3,0xc5,0xd4,0x29,0x40,0xcc,0xf4,0xbd,0xb1,0xe3,0x58,0x2e,0x1f,0x3d, + 0xdc,0x95,0xde,0xf0,0xcd,0x7f,0x36,0xb1,0x1b,0x1f,0x01,0x20,0xe5,0x70,0x50,0xc6, + 0x07,0x6f,0xef,0x67,0x78,0x45,0xe6,0xea,0x4a,0xc0,0x85,0x34,0xf5,0x7d,0xa1,0xc9, + 0xc0,0xbb,0xa2,0x56,0x47,0x39,0x49,0x29,0x77,0xf2,0x04,0xd0,0x63,0x78,0x28,0x24, + 0x29,0xef,0xa7,0x26,0x09,0x85,0xa4,0x1e,0x13,0xd0,0x01,0x53,0xe0,0xbd,0x6b,0x16, + 0xbe,0xb4,0xc0,0x4f,0xff,0x64,0x48,0x27,0xd7,0xc3,0x8c,0x36,0x1b,0x6d,0xa9,0xc8, + 0x6a,0xf6,0xd4,0x0e,0x8e,0x1e,0x4b,0x1e,0xf4,0xb5,0x51,0xd1,0x62,0x37,0xa0,0xd9, + 0x7b,0x14,0xa1,0x0a,0xd4,0x30,0x9c,0xf3,0x8f,0xcb,0x84,0x76,0xb2,0x92,0xe4,0xd7, + 0x69,0xc7,0x1d,0x6a,0x07,0x8c,0xb2,0xc5,0xbd,0x31,0x1e,0x14,0x4f,0xdb,0x31,0x45, + 0x95,0x7a,0xff,0xcb,0xfe,0x5f,0x53,0x9b,0xc8,0xb8,0x60,0x07,0x69,0x36,0x90,0x5d, + 0xdd,0x40,0x51,0x0a,0xff,0xbe,0xc7,0x08,0xd1,0x1c,0xb6,0x89,0x28,0xf8,0x47,0x93, + 0xf8,0xc2,0x1f,0x0a,0xe3,0x17,0x89,0xbc,0xef,0xf8,0x1e,0x6f,0xcf,0x08,0x7e,0x64, + 0x72,0xb8,0x31,0xc3,0xc6,0x2e,0x98,0x91,0x78,0xd3,0xbf,0x68,0x21,0x91,0x00,0x68, + 0x3c,0xa7,0x50,0x0b,0x17,0x97,0x27,0x5e,0x59,0xc1,0x80,0x36,0x7c,0x5f,0x93,0x8c, + 0x6c,0xb7,0xc3,0x9a,0x20,0x2d,0xca,0x82,0x70,0x92,0x0a,0x10,0xba,0xcf,0x79,0x0e, + 0x3e,0x7a,0x52,0xa3,0x33,0x57,0x16,0x0b,0x6a,0x79,0xdb,0xfe,0x78,0x71,0xe2,0x71, + 0xba,0xe7,0x87,0xbf,0xbe,0x09,0x01,0xa6,0xc2,0xa6,0xb5,0xf8,0x0d,0xe4,0x4c,0xbf, + 0x0e,0x31,0xd1,0xf0,0xc6,0x7c,0x8c,0xb9,0x85,0xb1,0x9e,0xcf,0x7b,0x02,0x60,0x29, + 0x7c,0x3a,0x03,0xc5,0x72,0x25,0x73,0x6c,0x13,0xae,0xee,0x69,0x54,0x75,0x6f,0x0f, + 0x76,0x6e,0x6e,0xe2,0x8e,0xf3,0x5a,0xb7,0x5f,0x99,0x09,0x37,0x33,0x85,0xd2,0x99, + 0x3e,0x2d,0x97,0x47,0xc7,0x66,0xc1,0x57,0xe6,0x16,0x2f,0x9c,0x2d,0xdd,0x4d,0xb9, + 0xb7,0xa7,0x7c,0x9f,0x80,0xd6,0x3a,0x51,0x0b,0x2e,0x34,0x44,0x1c,0x12,0x6e,0x56, + 0x70,0xcf,0x64,0xd7,0x94,0xb5,0x8c,0x2b,0x05,0xda,0x2f,0x99,0xad,0xe1,0x62,0xdd, + 0x80,0x08,0x9d,0xdb,0x35,0xb8,0x82,0x9b,0x0d,0x82,0x66,0x40,0x14,0xc8,0x3f,0xc1, + 0xcf,0x63,0xd7,0xd9,0x08,0x73,0x24,0xab,0xbd,0x36,0x0e,0x47,0xfc,0xbd,0x10,0x10, + 0x8d,0x3e,0xc6,0x8b,0xa3,0xf0,0x4f,0x1f,0x9b,0xa2,0x5b,0x4c,0xf0,0x28,0xc7,0x55, + 0x78,0x96,0xd0,0x73,0xc7,0xab,0x12,0xdf,0x70,0x00,0xdc,0xe8,0x6f,0x7d,0xaf,0x52, + 0x43,0x5f,0x11,0xe4,0x0d,0x43,0xaf,0x3c,0xff,0xc0,0x0e,0xa9,0xa6,0x1c,0xc9,0x32, + 0x22,0x14,0x75,0x45,0x35,0x92,0x67,0xcd,0x7e,0x3e,0x86,0xf7,0x91,0x4f,0xbc,0xc8, + 0x52,0x7e,0xc0,0x4b,0x9b,0xc4,0x1b,0x42,0x12,0xcd,0x75,0xac,0xe9,0x78,0x84,0x39, + 0x3a,0xbe,0x6e,0xb2,0x65,0x18,0x3e,0x2d,0x91,0xdf,0xc3,0x96,0xd1,0xfb,0x7a,0xe9, + 0x4e,0x58,0x21,0x60,0x20,0x68,0x57,0x8b,0x4e,0x1b,0xfd,0xcf,0x59,0x55,0x8d,0x17, + 0x7a,0x84,0x69,0xd5,0x44,0x9e,0xd7,0x2d,0x48,0xea,0x7a,0x25,0x36,0x70,0x7d,0xe4, + 0x13,0x4a,0xdc,0x0f,0xb6,0x0f,0xd0,0x49,0x3c,0x95,0xed,0x16,0x3f,0x6d,0x27,0xfc, + 0x42,0x4b,0x20,0x51,0x2d,0xc5,0x31,0xa1,0x73,0x0e,0x28,0x59,0xe2,0xd8,0xdb,0x39, + 0xfb,0xa8,0xaa,0x36,0x64,0xfe,0x48,0x0b,0x5f,0xb2,0xcb,0xdd,0xaa,0xdb,0xe6,0x2e, + 0xb4,0xd5,0x8e,0x3e,0xd0,0x9e,0x37,0xde,0x5a,0x55,0xa2,0xf8,0x9a,0x09,0x5f,0x7d, + 0xa0,0xb3,0xb8,0xe8,0xe8,0xae,0x3f,0xf9,0xbd,0xf3,0x3b,0xcd,0x64,0x19,0xba,0x96, + 0xb4,0x30,0x48,0x0f,0x63,0x8c,0xb9,0xe7,0xb0,0xbd,0x02,0x75,0x33,0x12,0x97,0x88, + 0x2f,0xb1,0xb5,0x63,0x98,0xd8,0xd9,0xf5,0x11,0x9b,0x93,0x8f,0x2b,0x56,0x5a,0x86, + 0x5d,0xce,0x27,0xa9,0x85,0x4a,0x6f,0x21,0x8b,0xca,0xf4,0xd0,0x52,0x3f,0xa7,0x15, + 0x79,0x3b,0xe3,0xee,0x68,0x34,0x6c,0xdf,0x24,0xfa,0xc9,0x0e,0x1c,0x6c,0xbe,0xe2, + 0x16,0xdf,0x77,0xe8,0x6e,0xd5,0x26,0xa7,0xb4,0x6e,0xb8,0x8d,0x88,0xd2,0xd4,0x16, + 0xcd,0xf2,0xdc,0x1b,0x5b,0x58,0x68,0xea,0x7b,0xda,0xa7,0xf3,0xb5,0xe1,0x27,0x2b, + 0x9a,0xa2,0xf2,0x4b,0x2a,0x2d,0xdb,0xd1,0x7e,0xdd,0x82,0x66,0x8b,0x98,0x85,0x9d, + 0x0d,0x8a,0x19,0x7f,0x7c,0x2e,0xc3,0xcf,0x19,0x8a,0x5d,0x7f,0x58,0x32,0x1c,0x29, + 0x17,0xcb,0x0f,0x51,0xfa,0xae,0xcc,0x72,0x95,0x57,0x0a,0x9f,0xdd,0x44,0x96,0xeb, + 0x56,0xa9,0x45,0x0a,0x51,0x46,0xf9,0x21,0x36,0x7d,0x35,0xab,0x84,0xd0,0xc5,0xd7, + 0xd6,0x2d,0x6a,0x08,0xb2,0xa9,0x51,0x97,0xfd,0x72,0xe3,0xe1,0x0d,0x06,0x68,0x39, + 0x12,0x42,0x6e,0xdd,0x99,0xa2,0xf6,0xca,0xc7,0x02,0x1a,0x28,0x9d,0x8d,0x9c,0x46, + 0xd3,0xd1,0x5f,0x98,0xa8,0x98,0x3b,0xc4,0x56,0xa9,0x6c,0x99,0x57,0x18,0xc6,0x75, + 0xdf,0x59,0xd1,0x39,0xe5,0x99,0x13,0xbb,0x3b,0x7b,0x3d,0xa1,0xe3,0x6f,0x24,0x24, + 0xe0,0x3f,0x89,0xf4,0x52,0x02,0x8f,0x0d,0x7f,0xa1,0x9d,0x83,0xd9,0xd8,0x62,0x13, + 0x91,0x3a,0x27,0x00,0x78,0x27,0x3d,0x1d,0x88,0xa2,0x0b,0x44,0x85,0xb3,0x19,0xdf, + 0x71,0x85,0x72,0xf8,0x9e,0x2e,0x1e,0x1d,0xb7,0xc2,0xed,0x73,0x48,0x9a,0xbc,0xc7, + 0x6d,0xe2,0x66,0xd0,0x78,0x46,0x12,0x6c,0x8f,0x5f,0x4b,0x1e,0x13,0x86,0x3c,0xca, + 0x1c,0xec,0xd8,0x37,0xc5,0x6c,0x7e,0x90,0x65,0x93,0x78,0xfd,0x41,0x47,0xf7,0x0f, + 0x1f,0x74,0x10,0x46,0x0e,0x7d,0x40,0x36,0x52,0xde,0x07,0x87,0xd5,0xf0,0x64,0xd0, + 0x40,0x98,0xdd,0x48,0x8b,0xa4,0xb2,0xc8,0x07,0x48,0x87,0xa4,0x6f,0xe5,0xa8,0x75, + 0x38,0xbf,0xed,0xb4,0x35,0xfc,0x4f,0x2d,0x57,0x7f,0x44,0x6a,0x02,0x24,0x42,0xf1, + 0x1d,0xdc,0x76,0x76,0xab,0x1a,0x04,0x39,0xec,0x71,0x29,0xab,0x93,0x9b,0xd3,0xdc, + 0xc1,0x5b,0x76,0x79,0x8a,0x3f,0xf2,0x2a,0xd1,0x2e,0x75,0x7a,0xdc,0xf8,0xcb,0xa5, + 0x98,0x72,0xbc,0x30,0x6e,0x06,0x40,0x66,0x6b,0x4e,0x13,0x77,0x2b,0xaf,0x29,0x09, + 0xea,0x5f,0xb0,0x8c,0xfa,0xc2,0xc4,0x06,0x0e,0xbb,0x99,0x9f,0x3a,0xf3,0x53,0x3f, + 0x8e,0x66,0x8e,0x52,0xca,0xf9,0x68,0xa5,0x13,0x65,0xd9,0x71,0x20,0xd2,0x13,0x9e, + 0xba,0x3e,0xcb,0x03,0xeb,0x72,0xa7,0xac,0x42,0xe9,0x6e,0x79,0x10,0x5c,0x09,0x64, + 0xc3,0x82,0xe4,0x70,0x27,0x6c,0xde,0xb4,0xa7,0x04,0x9c,0xbe,0x29,0x73,0x5f,0xb3, + 0x48,0xfc,0x1b,0xd6,0x88,0x0d,0x33,0xcd,0x5b,0x3d,0x56,0xf8,0x97,0xa5,0xf7,0x67, + 0xb2,0xf8,0x03,0x6f,0xc4,0x6b,0x04,0x42,0x6f,0xd4,0xff,0x7b,0xb9,0xff,0xb3,0xe9, + 0xe5,0x68,0x00,0x6b,0x52,0x9d,0x7f,0xea,0x63,0x9f,0x6f,0x8b,0xb6,0x02,0x76,0xf1, + 0xb0,0x01,0xbb,0x56,0xdd,0x72,0x61,0x07,0xe3,0xd9,0x14,0xe6,0x65,0x72,0x6d,0x83, + 0xe6,0xa8,0x52,0x38,0x2a,0x34,0xc5,0xf0,0xe8,0xb2,0xbe,0x66,0x10,0x9f,0x2a,0x1f, + 0x5b,0x9b,0x47,0x09,0x12,0x57,0xce,0xd0,0x89,0x2c,0x65,0x39,0x55,0xa3,0xf8,0x65, + 0x3c,0x5d,0x73,0x49,0xf0,0xe3,0xe4,0x68,0x25,0x10,0xe1,0x06,0x0d,0x34,0x7a,0x62, + 0x24,0x13,0xd5,0x6d,0xb5,0x4c,0x0b,0x43,0x50,0x48,0x91,0xa8,0xf9,0xa8,0x7a,0x4d, + 0x8e,0x4b,0x46,0x32,0xfe,0xa3,0xf3,0x90,0xe8,0x43,0xbc,0xc0,0x06,0x82,0xce,0x2e, + 0x88,0x89,0xfe,0x77,0x1a,0xb3,0xff,0x9d,0x95,0xca,0x73,0xd1,0x0b,0x6a,0x07,0x71, + 0xab,0x81,0x48,0xb4,0x09,0x1f,0x7a,0xe1,0xd3,0x09,0x84,0xa8,0x79,0x53,0x79,0x49, + 0xc6,0x49,0x9e,0x9e,0x8a,0x5a,0x24,0xf9,0x07,0x3d,0x41,0xb7,0x45,0xa7,0xa9,0x62, + 0x41,0x08,0xf3,0xc0,0x2b,0x4a,0x84,0x9e,0x86,0x09,0x1c,0x8d,0xd3,0x0f,0xad,0x31, + 0x0f,0xc2,0x9d,0xbf,0xa3,0x68,0x74,0xb4,0xdb,0xfc,0xee,0x38,0x7e,0xd7,0x8a,0xde, + 0x5d,0x35,0xe2,0xaf,0x76,0xe2,0x58,0x8c,0xe7,0x8a,0x34,0xfa,0x47,0x0b,0x40,0x78, + 0xe7,0x19,0x1f,0x35,0x70,0x44,0xdd,0xdc,0x3d,0xe6,0x83,0x5a,0x5e,0x8e,0xd3,0xe2, + 0x68,0x7c,0xb4,0x77,0x7c,0x6c,0xcc,0x7b,0x29,0x81,0x27,0x52,0x2f,0x0c,0x3b,0xe6, + 0x94,0xe5,0x23,0x4d,0x25,0x71,0xe4,0x85,0x4f,0xde,0x82,0x03,0x3b,0x89,0x67,0xdd, + 0x29,0x85,0x6e,0xbc,0x76,0x91,0xe1,0xc7,0x9c,0xb6,0x45,0xca,0x8c,0xf7,0xc8,0x10, + 0xf5,0x06,0x6a,0x78,0x01,0x99,0xeb,0x2a,0x50,0x7a,0x5d,0x79,0x8d,0x3c,0x5c,0x5b, + 0xc7,0xe4,0xf5,0xe0,0x35,0xa8,0x83,0x8b,0x54,0x5a,0xdd,0x09,0x91,0x6b,0xeb,0x21, + 0xf1,0x3d,0x27,0xa6,0xa9,0x04,0xb7,0x5d,0x2e,0xfd,0xd4,0xc9,0x34,0xec,0xb9,0x69, + 0x55,0xa8,0xfd,0x79,0x09,0xce,0x90,0x2d,0x6f,0x51,0x62,0xdc,0x35,0x8d,0x4e,0x56, + 0xb3,0x29,0x31,0x36,0xd5,0xe7,0xd7,0xab,0xd9,0xf3,0x6b,0x53,0xb9,0x7f,0xb6,0x9a, + 0xd9,0x3f,0xd3,0xaa,0x1a,0x07,0x68,0xa5,0x88,0xc9,0x30,0x40,0xe6,0xeb,0x8a,0x99, + 0x0c,0x05,0x87,0x38,0x37,0x96,0x2e,0xf4,0xe6,0x52,0x10,0x25,0xaa,0x01,0x66,0x6c, + 0x51,0x49,0x58,0xa5,0xb7,0x1f,0xd6,0xc5,0x56,0x41,0xe2,0xfb,0x0d,0xd5,0xd4,0x35, + 0xbb,0x56,0xc0,0xcb,0x33,0x9e,0x7a,0x97,0x59,0x94,0x2b,0xc2,0x6e,0xbc,0x15,0x0b, + 0xda,0x49,0x5d,0x81,0xed,0x05,0x0f,0xd1,0x4a,0x51,0x74,0x6a,0x53,0xd9,0x92,0x21, + 0x6e,0x51,0x49,0x79,0x30,0xd1,0xad,0x32,0xe8,0xe5,0xc0,0x93,0x3d,0x34,0xef,0x04, + 0x8c,0xcb,0x6e,0x06,0xe7,0x46,0xd5,0xb3,0xb0,0x84,0x45,0xb4,0x4c,0xa6,0x40,0x40, + 0x09,0xaa,0x2c,0x87,0x32,0x5a,0xdd,0x0f,0x4f,0xe8,0xf7,0x76,0x2d,0x24,0x2d,0x0c, + 0x4d,0x67,0x15,0x8e,0x9a,0x33,0xdc,0x05,0x8c,0x96,0x5d,0x2e,0x77,0x1f,0xf9,0x60, + 0x34,0x7a,0xdc,0xc6,0x2f,0x42,0xa9,0xf7,0x9b,0xbe,0x0a,0x05,0xee,0x8c,0x91,0x02, + 0x5c,0xc5,0x4a,0x7d,0x99,0xdb,0xb1,0x22,0x09,0xab,0xc3,0x44,0xfd,0x13,0xd7,0xcc, + 0x4d,0xce,0x82,0x72,0x5e,0x81,0xfa,0xce,0x98,0x37,0x54,0x79,0x2f,0x25,0x6c,0x4d, + 0xdf,0x0b,0xf2,0xa6,0xba,0x5a,0x46,0x6b,0x5b,0x7f,0xc2,0xee,0x17,0x21,0xf5,0xbd, + 0xa4,0x4a,0x39,0xdf,0x3f,0xfa,0x6a,0x13,0x52,0xe0,0xbd,0x16,0xa8,0x62,0xb7,0xb1, + 0xb6,0x45,0x70,0x0d,0x0c,0x5d,0x5a,0xb5,0x9a,0x72,0x72,0xc7,0x93,0x8d,0x02,0xbc, + 0xe2,0xd7,0xae,0xcd,0x9d,0x5d,0x39,0x99,0x78,0x93,0x3c,0xcf,0xbf,0x84,0x53,0x42, + 0xd3,0xa4,0x09,0xcf,0x9f,0x87,0x8f,0xf8,0x55,0x4b,0xf2,0xdf,0x9b,0x7c,0x1a,0x26, + 0x8a,0x74,0xc5,0xbf,0xaf,0x56,0xfb,0x87,0xa6,0xd4,0xf0,0x14,0xeb,0x12,0xd7,0x29, + 0x2e,0x09,0x82,0xb3,0x75,0x24,0x6b,0xf3,0xf1,0xea,0x02,0x10,0xcd,0x94,0x53,0x40, + 0x12,0x7c,0x1e,0x5c,0xf1,0x7b,0x69,0x4b,0x6b,0x4a,0x3d,0x76,0x70,0x36,0x69,0xcb, + 0xe2,0xad,0x1e,0xec,0xfc,0xda,0x96,0xa2,0x17,0x27,0x27,0x77,0x72,0xe8,0xa5,0xb6, + 0x19,0xcf,0x6d,0xa2,0xad,0xa0,0x23,0x4c,0xd2,0xeb,0xeb,0xae,0x1d,0x61,0x44,0x29, + 0x6f,0x50,0x79,0x4e,0x0d,0x6d,0x33,0x9a,0xe6,0x13,0xcd,0xaf,0xb2,0xa1,0xad,0xb2, + 0xcc,0xfb,0xfa,0x56,0xe7,0x33,0xdb,0x1e,0xde,0x34,0xd3,0xfa,0xdc,0xb5,0xd9,0xfc, + 0xae,0xed,0xab,0xb3,0x5a,0x9b,0x2f,0xef,0x02,0xc0,0x7a,0x4f,0xb3,0xd9,0x9a,0x24, + 0x10,0x3c,0xb7,0x65,0x3e,0xe6,0xb6,0xf8,0x7b,0x29,0xa0,0x68,0xc3,0xc7,0x97,0x03, + 0x14,0xaf,0x3e,0x75,0x3c,0x3f,0x60,0x5e,0xe9,0xf7,0x65,0x86,0xb5,0x83,0xf2,0xf6, + 0x16,0xd9,0x08,0x32,0x31,0x1b,0x6c,0xb0,0x08,0xae,0x77,0x05,0xac,0x53,0xb3,0xd8, + 0x80,0xa4,0x3c,0x4e,0xf3,0xa6,0x91,0xc9,0x55,0x41,0xdd,0xb7,0x31,0x7d,0x0e,0xe0, + 0xc9,0xc7,0x0d,0xe0,0x2d,0xdc,0x34,0xfa,0x48,0x59,0x00,0xae,0xf6,0x4a,0x0a,0x35, + 0xfd,0x08,0xb8,0xfe,0xee,0xfc,0x59,0x79,0x5f,0xe6,0xf9,0x80,0x64,0xf7,0xe8,0x54, + 0x6e,0xcd,0x18,0x9b,0x33,0x7d,0x73,0xb5,0xb5,0xd4,0xad,0x45,0xfa,0xfa,0x04,0x4e, + 0x7e,0xad,0x19,0x13,0x8e,0x95,0xc8,0xf5,0x24,0xe9,0x65,0x66,0x59,0x4e,0xa4,0x42, + 0x6d,0x14,0x64,0xd3,0x26,0x05,0x2a,0x78,0x14,0x89,0xc3,0xfd,0xe2,0xad,0xed,0xed, + 0x6a,0xee,0x91,0x93,0x7b,0x4c,0xbb,0xe8,0x42,0x78,0x4b,0x25,0x99,0x2a,0xdd,0xdb, + 0x00,0x5d,0xb9,0x27,0x80,0x6b,0x75,0x9b,0x7a,0x4c,0xf4,0xd1,0x6b,0x58,0xf4,0x99, + 0x35,0xad,0x6b,0x39,0x74,0xb3,0x66,0xd7,0x5e,0x20,0xd2,0xad,0xb8,0xe8,0x82,0x36, + 0x16,0xb5,0x77,0x09,0xfc,0x0f,0xf6,0x50,0x0b,0x43,0x35,0x83,0x91,0x52,0x83,0x03, + 0xfa,0xe4,0xf4,0x6e,0xb4,0xec,0x6d,0x20,0x65,0xa7,0x8e,0x90,0xdc,0x4f,0x95,0x86, + 0xea,0x09,0xfe,0x65,0x74,0xd4,0x52,0xb7,0x52,0x53,0x55,0x22,0x37,0x3c,0x70,0x3d, + 0xd4,0xd6,0x8c,0x05,0x51,0xab,0xdf,0xd6,0x3d,0x37,0x5b,0x32,0x62,0x61,0xd7,0x58, + 0x78,0x34,0xac,0xd9,0x4d,0x7f,0x50,0x8d,0x6d,0xea,0x7d,0xd6,0x87,0x63,0xb9,0xee, + 0x96,0x7e,0xb4,0xe8,0x50,0x62,0x65,0x03,0xbf,0x76,0x7f,0x0e,0x62,0x3b,0x66,0x73, + 0x1f,0x88,0x80,0xd4,0x90,0x33,0xc1,0xbb,0xb5,0x76,0x6a,0xdc,0x60,0x28,0xed,0xca, + 0x81,0x23,0x00,0xc9,0xab,0xaa,0x12,0x08,0x07,0x9a,0xdf,0x4c,0x36,0x4f,0xc9,0x00, + 0xec,0x50,0xa7,0x96,0x00,0x6c,0xc1,0x93,0x8f,0xd7,0x90,0x40,0x3e,0x4a,0x35,0x10, + 0x6b,0x3f,0xab,0xfa,0x55,0x54,0x12,0xdf,0x65,0xb5,0x0e,0x5e,0x5b,0xa0,0xe1,0x4d, + 0xac,0x5f,0xa1,0x99,0xbc,0x41,0x88,0x17,0x3e,0x92,0x36,0x6f,0x43,0x27,0x65,0xa3, + 0x94,0xf1,0xd4,0x48,0xf1,0xf7,0x1b,0x1f,0x1a,0xf7,0xd5,0x3e,0x8b,0x10,0x2c,0x09, + 0x5c,0x01,0x48,0x68,0x38,0x26,0x8b,0xaa,0x3b,0x7b,0x8b,0xac,0x94,0x0b,0x3c,0x9b, + 0x52,0x00,0xa9,0x28,0x4e,0xf8,0xe5,0x07,0xee,0xf4,0x7b,0xa7,0x48,0x7b,0xfe,0x8f, + 0xa8,0x52,0x3c,0x31,0xe3,0xc0,0x20,0xaa,0x63,0x41,0xd0,0x59,0x4b,0xb5,0x4d,0x5d, + 0x6d,0x9b,0x8c,0x0d,0x9d,0x34,0xc5,0xe9,0x72,0x69,0x2e,0xad,0xa0,0x52,0x33,0x02, + 0xb4,0xa0,0xc7,0xa4,0xb0,0xa3,0xac,0xa1,0xb7,0x66,0xdd,0x91,0xdc,0x28,0x7a,0x07, + 0x82,0xa3,0x98,0xa5,0x77,0x9e,0x9d,0x11,0xd2,0x17,0x6f,0x29,0x51,0x3c,0x47,0x78, + 0x57,0x13,0xbc,0xcd,0xae,0x5a,0x3f,0x23,0xf9,0x7d,0x36,0x71,0x8f,0x0f,0x65,0xf9, + 0x04,0x56,0x12,0x80,0x2e,0x35,0xb6,0xa9,0xa6,0x30,0xa7,0xc5,0xb0,0x74,0xd1,0x38, + 0x64,0x5e,0x01,0x4d,0x46,0x19,0x26,0x33,0xd7,0x78,0x9a,0xee,0x6e,0x6f,0xf3,0xd3, + 0x93,0x74,0xb7,0xad,0x4d,0x71,0x42,0x10,0x36,0xf8,0xb7,0x11,0x45,0x25,0xc8,0x34, + 0xdd,0x7d,0xbc,0x5c,0x3a,0xaf,0x0f,0xf6,0xe2,0x5e,0x18,0x68,0x02,0x55,0xd1,0xc7, + 0x0e,0xdb,0xe9,0x7a,0x1b,0x08,0xc1,0x24,0xa7,0xfd,0x0d,0xed,0x95,0x1f,0x3f,0x7a, + 0xbc,0xf7,0x28,0x6e,0x84,0x54,0xa9,0x9a,0xcf,0x41,0xba,0xa4,0x08,0x82,0x72,0x55, + 0x95,0x72,0xb8,0xba,0xc2,0xd4,0x54,0x2b,0x7f,0x43,0x25,0xbf,0x9f,0x4c,0x32,0x7a, + 0x2a,0x11,0x7a,0x79,0x05,0x38,0x11,0xd9,0xa2,0xdf,0x34,0xe5,0xe9,0xb6,0x0e,0x67, + 0x94,0x52,0x80,0x49,0x2f,0x45,0x8e,0x7b,0x5e,0xef,0x48,0x8f,0x4c,0xd6,0xf5,0x46, + 0x17,0x4f,0xca,0x1d,0x26,0x4c,0xed,0x09,0x28,0xdd,0x33,0x9f,0x3c,0x89,0x3b,0x1a, + 0xe4,0xae,0xbb,0xe5,0x61,0xa8,0xa4,0x04,0x92,0x06,0x42,0x95,0x50,0x5e,0xb7,0xf8, + 0xa9,0xe8,0x9d,0x9e,0x97,0xd8,0x01,0x39,0xbd,0x76,0xf2,0x6b,0xaf,0x85,0xfa,0xae, + 0x5a,0xad,0xc8,0x1d,0xe5,0xd4,0xdd,0xd8,0x8d,0xde,0x64,0xe0,0xd5,0xaf,0xda,0xb5, + 0x6e,0xf6,0x98,0x7c,0xab,0xdd,0xb9,0x83,0xb5,0x73,0x36,0x76,0xb4,0x62,0x29,0x1d, + 0x26,0x34,0x4f,0xa5,0x42,0x9a,0x6a,0x1f,0xd8,0xc9,0xb3,0xb1,0x2f,0xec,0xb9,0xbc, + 0x13,0x38,0x6f,0x93,0xa1,0x86,0x94,0x88,0x6d,0x1d,0x2f,0xd0,0xe0,0x86,0xba,0x5a, + 0x15,0x68,0xbb,0x2e,0xd4,0x79,0xd8,0x2a,0x8b,0x00,0xa5,0x90,0x23,0x85,0xc9,0x5c, + 0x7a,0x43,0x17,0xf3,0x8c,0xdb,0xdc,0x93,0xb0,0x8d,0xf6,0x78,0x80,0xe2,0x0b,0xdb, + 0xa2,0x76,0xb8,0x69,0xce,0x8b,0xed,0x89,0xf1,0xeb,0xa3,0xed,0x78,0x61,0x18,0x31, + 0xed,0xa4,0x84,0xca,0xeb,0xb6,0x6b,0x44,0xe6,0xc0,0x00,0xd8,0xde,0xe6,0x64,0x57, + 0x18,0x72,0x61,0xb8,0x8b,0x0f,0x52,0xfe,0xd0,0xf2,0x33,0x70,0x56,0x1e,0x19,0x75, + 0xf8,0xc3,0xab,0x4f,0xe4,0xb6,0x96,0x30,0x2a,0x89,0x20,0xed,0x76,0x64,0x8d,0x75, + 0xaf,0x32,0x13,0x98,0xad,0x93,0xa3,0xfb,0xce,0x6a,0xf4,0x53,0x13,0xd1,0xcf,0x0d, + 0x7d,0x3a,0xfa,0xc4,0x36,0xe9,0x65,0x0f,0x86,0xcf,0x2e,0x69,0xb1,0x1b,0x6b,0x95, + 0x9d,0xc2,0x89,0x7c,0x28,0xd1,0x9d,0xd9,0xb8,0x06,0xb1,0x47,0xc6,0x64,0xd7,0x44, + 0x2a,0x86,0x6c,0xf4,0xc9,0xc4,0x7a,0xc6,0x49,0x3a,0x65,0xf0,0x7d,0x54,0xf5,0x00, + 0x0a,0xe0,0xe1,0x4b,0xea,0x4c,0x0d,0xa3,0x19,0x0c,0x0b,0x00,0xef,0x8f,0x4e,0xa1, + 0xbe,0x44,0x5c,0xaf,0xd2,0xfd,0xf1,0x48,0x1c,0xa6,0x1c,0xfc,0xc8,0xf0,0x4e,0xe8, + 0x0f,0xbb,0xbd,0x60,0x53,0x29,0x09,0x2a,0xdd,0xaa,0xee,0x0a,0x1d,0x21,0x42,0xcf, + 0x96,0x52,0x3a,0x79,0xb0,0xb7,0x29,0xf3,0xf3,0xb5,0x57,0x28,0x67,0x47,0x8e,0x44, + 0x45,0xe5,0x52,0xe5,0x97,0x37,0x76,0x01,0x99,0xb5,0xce,0x48,0x97,0xda,0x08,0x13, + 0x1a,0x6c,0xad,0x93,0x2b,0xf3,0x50,0x9c,0x99,0x87,0xd3,0xbc,0xba,0x8d,0xfc,0x34, + 0x39,0x2d,0x63,0xea,0xd2,0x5a,0x6f,0x50,0xca,0xcb,0xa4,0xd4,0xd7,0xda,0x26,0xa5, + 0xb1,0xab,0x8a,0xe5,0x47,0x50,0x1f,0x87,0x89,0x0c,0x81,0x3a,0x0b,0xb6,0xc1,0x14, + 0x7e,0xc0,0x4a,0x1e,0x45,0x96,0x73,0xa9,0x85,0x79,0x24,0xb9,0xc7,0x0c,0x1b,0xda, + 0xce,0x42,0x17,0x08,0x2e,0xd9,0xe2,0x24,0x59,0x89,0x51,0x5d,0x28,0x5e,0x99,0x2c, + 0xf7,0x1b,0x02,0xa2,0x71,0xdf,0xa2,0x8a,0x69,0x23,0x23,0x2f,0xd4,0xdc,0xb0,0x26, + 0x4a,0xf3,0x26,0x3e,0x84,0x76,0x09,0x86,0x34,0x68,0xcf,0x2c,0x25,0xa3,0x6b,0xa9, + 0xa0,0x4f,0x58,0x10,0x4d,0xe6,0x96,0x77,0x9b,0x47,0x49,0x22,0x5b,0x35,0x03,0xd1, + 0x04,0xd0,0xb5,0xd6,0x53,0x92,0x20,0x64,0xb2,0xe6,0xf2,0xa9,0x24,0x97,0xe7,0x77, + 0xa2,0x1d,0x27,0xfb,0x10,0x2f,0x5d,0x22,0x3c,0x6f,0x6f,0x47,0x8c,0xc2,0xf6,0x6e, + 0x1c,0xaf,0x96,0x41,0x88,0x67,0x5b,0x64,0x0f,0x97,0x65,0x4c,0x09,0xc3,0x83,0xee, + 0x95,0xcd,0x76,0x25,0xc3,0x7e,0xb7,0xcd,0xb2,0xe2,0xb1,0x98,0x05,0xa7,0xd2,0x51, + 0xe6,0x45,0x31,0xe9,0x85,0x1c,0x6c,0x3a,0xec,0x78,0xb9,0xc0,0x81,0x32,0x29,0xce, + 0x74,0xd8,0xd1,0x3b,0xa1,0xe1,0xa6,0xae,0x12,0x05,0xa0,0x77,0x2c,0xbc,0xcf,0xe0, + 0x68,0x9a,0x36,0x04,0x70,0x23,0xa4,0xab,0xef,0x2b,0xd1,0xd7,0x91,0x6f,0x86,0x91, + 0x26,0x41,0xc1,0x12,0x44,0xd4,0x7a,0x6c,0xd4,0x2c,0x31,0x55,0xdd,0xd4,0x3e,0xdb, + 0x5a,0xdc,0x3a,0x50,0xa8,0xef,0xab,0xed,0xc4,0xf6,0x22,0x4c,0x4d,0x1c,0xfb,0x0d, + 0xe0,0xca,0xe1,0xe4,0xd5,0xf6,0xc3,0x52,0xfb,0x24,0xb1,0x33,0xaa,0xa5,0x05,0x61, + 0x05,0x63,0x1e,0x4d,0xdc,0x21,0x04,0x41,0x0d,0xb8,0x5f,0xec,0x14,0xc7,0xf1,0x2c, + 0xd1,0xa3,0xbc,0x92,0x9f,0x67,0xec,0x50,0x1e,0xf7,0x03,0x88,0xb2,0xf4,0x9c,0xf7, + 0x0b,0x54,0x84,0x19,0x00,0xd5,0x66,0xc1,0x23,0x30,0xae,0x84,0x03,0x8d,0xd0,0x4b, + 0x0e,0xb8,0xfa,0xf3,0x80,0x48,0x55,0xcc,0x83,0x47,0xed,0xff,0x68,0x05,0x2f,0xe6, + 0x26,0x30,0x0d,0x40,0xc3,0x9c,0x7c,0x84,0x4b,0x1f,0x66,0xfa,0x6a,0x1c,0xfd,0x3e, + 0x4e,0xba,0xd8,0x06,0xc7,0xf6,0x1d,0x37,0x17,0xe8,0x27,0x78,0x97,0xd3,0x4b,0xd7, + 0x59,0x33,0x42,0x1d,0x76,0x89,0x3e,0x73,0xad,0x8d,0x11,0x5e,0x65,0x40,0xb8,0xc8, + 0xa8,0xfd,0xec,0x30,0x8c,0xa4,0x96,0xb3,0x50,0xe1,0xc6,0x7d,0x2b,0xfa,0x4a,0x99, + 0xe5,0x52,0x7e,0x57,0xcd,0x16,0xcb,0xdd,0x35,0xd5,0x3b,0x4e,0x4d,0x29,0x59,0xb0, + 0xe5,0xc5,0xb7,0xe1,0x95,0xa5,0x35,0xee,0x7a,0xb6,0xb3,0x2b,0x72,0xbc,0xe8,0xe3, + 0x22,0x7e,0x54,0x55,0x5c,0xc5,0xc0,0x8b,0x00,0x3a,0x8e,0x70,0x80,0x6d,0xa5,0xb0, + 0xf3,0xdc,0xc2,0x33,0x97,0x4a,0xb9,0x72,0xb9,0x72,0x58,0xd3,0x6f,0x81,0xb4,0x72, + 0x21,0xe5,0xb4,0x6a,0xc8,0x52,0x6d,0x52,0x75,0x99,0x66,0x51,0x90,0xe3,0xa7,0xf4, + 0xb4,0x6b,0xe4,0x11,0xac,0x71,0x4a,0x1d,0xf3,0x5c,0xfa,0x15,0x92,0x85,0x44,0x93, + 0xf8,0x32,0x8b,0x85,0x72,0x8b,0x4e,0x68,0x65,0x01,0xeb,0x7a,0x37,0xb8,0x16,0x7c, + 0xd3,0xe0,0x00,0x07,0xfe,0x34,0x9b,0x6c,0x98,0x93,0xb8,0x5b,0xc9,0xb8,0xfa,0xa7, + 0xa6,0xdf,0x38,0x9e,0x0d,0x3e,0xac,0x59,0x8a,0x75,0x28,0xa5,0xae,0xde,0x26,0xf9, + 0x98,0xaa,0x1d,0x04,0x61,0x61,0xbe,0x5b,0x34,0x30,0xbe,0x32,0xc7,0x33,0xaf,0xb2, + 0xe3,0x80,0xc1,0xd2,0x50,0x07,0x60,0x76,0x68,0x08,0x03,0xc6,0xd6,0x19,0xe5,0x20, + 0x83,0xba,0x8c,0xf2,0xb6,0xb7,0xe9,0x8f,0xe7,0x7c,0x28,0x24,0xc1,0x7e,0x38,0x13, + 0x83,0x5a,0xea,0x8b,0xd3,0x0b,0x85,0xac,0x7c,0x08,0x9f,0xa4,0x2a,0x9b,0xb5,0x1f, + 0xe5,0x99,0x84,0x78,0x32,0xc9,0xe6,0x3a,0xba,0xa5,0x31,0x26,0x1b,0x9e,0xa4,0xb2, + 0xf9,0xb3,0x95,0x53,0x9a,0xc3,0xca,0x3b,0xf1,0xc9,0x53,0x3d,0xda,0x34,0x44,0xd3, + 0x43,0x5b,0xf7,0x8a,0x4e,0x54,0x16,0x22,0xed,0x6a,0xcb,0x3f,0x0b,0xb6,0xd7,0x76, + 0xbc,0xe6,0xb5,0xc0,0x5d,0xc4,0x04,0xbf,0x59,0xc0,0x72,0x59,0x88,0xdf,0x28,0x78, + 0x89,0x5d,0x54,0x57,0xab,0x8b,0xa4,0xbe,0x42,0x89,0x40,0x96,0xe3,0x23,0xd3,0x3d, + 0xb3,0xfe,0x30,0x07,0x62,0xc7,0xc9,0xe6,0x92,0xea,0x4b,0xb3,0xa9,0x15,0x36,0x09, + 0xfe,0x2a,0x03,0xd4,0x53,0xcd,0x40,0x40,0x47,0x5a,0xfc,0xcb,0x5a,0x37,0xb1,0x4c, + 0xc5,0x1f,0xa4,0xb4,0xb9,0x11,0xc1,0x77,0x4c,0x54,0x0d,0xa1,0x23,0xc3,0xce,0x0d, + 0xbc,0x7b,0x6a,0xb5,0x6e,0xff,0xec,0x27,0xda,0x25,0xa0,0x9e,0xbd,0x50,0xbd,0x4b, + 0x17,0xaa,0xd3,0xf2,0x5a,0x13,0xdf,0xac,0x5e,0x98,0x1d,0x30,0xa6,0xef,0x8f,0xd8, + 0x16,0x16,0xd1,0x57,0xd5,0xe9,0x9d,0x0c,0xe3,0x6e,0x4d,0x21,0x9d,0xea,0x5a,0xe6, + 0x86,0xd1,0x7e,0x83,0x63,0x42,0x2a,0x33,0xc2,0x25,0x56,0x34,0x5e,0x7f,0x0c,0x52, + 0x61,0xa9,0x6b,0xed,0xa2,0x7c,0x5e,0xae,0xfc,0xd5,0x28,0x9d,0xab,0xcc,0xbd,0x96, + 0x68,0x8b,0xad,0x23,0x1d,0x38,0x61,0xe2,0x9e,0xf6,0xd7,0x49,0xd7,0x33,0xfa,0xca, + 0xe1,0xb5,0xe1,0x48,0x58,0x56,0xbd,0x25,0x4c,0xf2,0x49,0x38,0x46,0x9e,0xbb,0x29, + 0xaf,0x2f,0xa6,0x06,0x05,0xd5,0x81,0x1a,0xa9,0x21,0x2f,0x44,0xa6,0xe5,0xb2,0x7c, + 0x9b,0x38,0x2f,0x3a,0xc6,0x56,0x3d,0x01,0xd8,0x7d,0x22,0x31,0xc9,0x44,0x75,0xde, + 0x1f,0x53,0x57,0x57,0x1e,0x2f,0x56,0x35,0xd4,0x62,0xa5,0x5e,0x51,0x66,0xdf,0x88, + 0xb6,0x3c,0xde,0xb4,0x51,0xfd,0x00,0x3b,0x41,0xad,0x25,0x0b,0x02,0x94,0xea,0x30, + 0x1b,0x8a,0x75,0x7c,0xd9,0xd4,0x8a,0x85,0xc9,0x72,0x29,0x69,0xbe,0x9d,0x46,0xbc, + 0x66,0x70,0x6f,0x5a,0xb7,0xb5,0x29,0x75,0xc6,0xc0,0x03,0xf4,0xac,0x39,0x38,0x15, + 0x36,0x7d,0xaf,0x72,0x7e,0x46,0xa5,0xd3,0x59,0x3f,0x2f,0xb2,0x1f,0x11,0x24,0x20, + 0xb2,0x7d,0x03,0xb4,0x6d,0xaf,0xe1,0xf4,0xae,0x22,0xf6,0x0d,0x0b,0x0a,0xd5,0x33, + 0x9c,0x67,0x11,0xd9,0x3f,0x91,0x61,0xf5,0xd9,0xd3,0xb4,0xdd,0x0b,0xff,0x3f,0xc8, + 0xbd,0xe2,0x6c,0x60,0x4a,0x86,0xd5,0x11,0xe2,0xf7,0xef,0x50,0x89,0x06,0xed,0x0a, + 0x76,0x48,0x77,0xd9,0x08,0xff,0x23,0x18,0x5c,0xce,0xc9,0xf3,0xc9,0x27,0x12,0x6f, + 0xc3,0x8e,0x1c,0x5c,0xea,0x3d,0xa1,0x9a,0x9b,0x1e,0xf0,0x07,0xe6,0x5f,0xf4,0x50, + 0xad,0x2f,0xdd,0xf7,0x98,0xb3,0x93,0xbe,0x6e,0xcd,0x41,0x86,0x3d,0xef,0xa1,0xb3, + 0x39,0x2a,0x89,0x0b,0xbb,0x58,0xc5,0x5d,0x87,0x6d,0xf1,0xed,0xab,0x7c,0x3d,0x60, + 0x3d,0xe0,0x32,0xe6,0xd0,0x17,0x59,0x4e,0x84,0x18,0xb8,0xa0,0x51,0x6b,0x38,0x48, + 0xca,0x93,0xd8,0xd8,0x03,0xa5,0xfa,0xee,0x1a,0xdd,0xb3,0x1e,0x36,0xb9,0xa5,0x9d, + 0xc3,0x0f,0x9d,0x36,0x6e,0x6e,0xe3,0x7e,0x3d,0x7f,0x9d,0xf2,0x61,0xc8,0x94,0x44, + 0xa6,0x52,0x0b,0x3e,0x75,0x70,0xc2,0x64,0xb1,0x33,0xc4,0x05,0x68,0x0b,0x61,0xd2, + 0xd4,0x92,0xc1,0x7a,0x6d,0xab,0xe7,0x46,0xfe,0x77,0xe8,0x61,0x8c,0x7f,0x8c,0x63, + 0xbf,0x45,0x4b,0xdc,0xe9,0x6b,0xa6,0x32,0x2c,0x5d,0x45,0x44,0x6d,0x8b,0xf9,0xb9, + 0x1e,0x9d,0x55,0xd9,0xfd,0x46,0x19,0x43,0x9b,0x9b,0xae,0x9f,0xea,0x38,0x6f,0xab, + 0xac,0x26,0x1e,0x35,0x43,0x4e,0xa4,0x72,0xa5,0x4f,0x22,0xbd,0xbb,0x0d,0x61,0x09, + 0xc6,0xaa,0xd8,0xa5,0xb0,0x2e,0x47,0x2e,0x4e,0x04,0x72,0x2d,0x91,0x03,0x66,0xc1, + 0xf1,0x34,0xf9,0x27,0x9b,0xd0,0x5a,0xc0,0x42,0x25,0x1d,0x77,0xea,0xae,0xbd,0x25, + 0x21,0x8e,0x94,0xeb,0xa6,0xcd,0xdd,0xee,0xdb,0xfd,0x1f,0x5e,0xbc,0x7e,0xff,0xe6, + 0xed,0x73,0xba,0xc6,0x79,0x50,0xc3,0xa6,0x93,0x21,0x13,0x4e,0xcf,0x8a,0xa4,0x1d, + 0xa1,0xc3,0x2c,0x26,0x04,0xe3,0x71,0x3a,0xe4,0x65,0xd4,0x90,0x74,0x8c,0xa9,0x6c, + 0x84,0xaa,0x71,0xdc,0x89,0xf4,0x5b,0x2a,0xcc,0xad,0x17,0x02,0xff,0xb0,0x23,0x95, + 0xf4,0xcc,0xc4,0x39,0x27,0x06,0x75,0x56,0x9c,0x5f,0xba,0x67,0x6c,0xdb,0xdb,0x56, + 0xd4,0x74,0x9f,0xed,0xb9,0x0f,0xa9,0xc4,0xe2,0xd5,0x53,0xca,0xd5,0xb3,0x5d,0x37, + 0xf7,0x38,0x2d,0x87,0xee,0x66,0xb6,0x60,0xc1,0xac,0xe5,0x01,0xf7,0xd6,0x31,0x0e, + 0x42,0x57,0x1b,0x01,0xcc,0x50,0x3e,0x7e,0xcd,0x78,0x5f,0x39,0x6f,0xac,0xe6,0x03, + 0x61,0x5d,0x18,0xd7,0x8d,0x5f,0x30,0xed,0xea,0xe9,0x63,0xe5,0x0d,0xdb,0x1a,0xfd, + 0x98,0x5a,0x21,0xd8,0xa5,0x49,0x2d,0x9e,0xe0,0x46,0x7e,0x3b,0x48,0x72,0x5f,0xb4, + 0x15,0x7b,0x82,0xe6,0x01,0xf0,0x9a,0xb9,0xa9,0xde,0x8e,0xf2,0x16,0xac,0x85,0x39, + 0x93,0x71,0x0f,0xfc,0xca,0xc1,0x65,0x06,0xb9,0x59,0x9f,0x66,0xb3,0xbf,0x48,0x54, + 0xd9,0xf4,0x9e,0x5c,0x4d,0xa2,0x94,0x8d,0xf7,0x92,0x44,0xa8,0x56,0x1f,0xff,0x35, + 0x32,0xb4,0x38,0x14,0x4d,0x26,0x4f,0xdb,0xdb,0xdb,0x16,0xbc,0x53,0xaf,0x39,0xf1, + 0x6f,0xab,0x34,0xa2,0x09,0x8e,0x70,0x7a,0xa1,0x71,0xc3,0x1f,0x76,0xf4,0xa9,0xf0, + 0x9c,0xdd,0x38,0x11,0x00,0x16,0xce,0x0e,0xda,0xdf,0xd3,0x1a,0xcd,0x30,0x4f,0x4d, + 0x7d,0x16,0x67,0xab,0xa1,0x84,0x0d,0xc8,0x06,0xd8,0x9f,0xc8,0x9c,0x3a,0x78,0xf9, + 0xfa,0x10,0x77,0xdc,0x5f,0x3e,0x7f,0x95,0x2e,0xe6,0x14,0xd9,0x7a,0xd2,0x79,0xf8, + 0x4d,0x72,0x59,0x64,0x39,0x2c,0xb8,0x3b,0x0f,0x76,0xcb,0xcb,0x55,0xe4,0xd9,0x25, + 0x91,0xd0,0x34,0x78,0xe2,0xd8,0xc8,0x9d,0xef,0x1e,0x25,0xfd,0xcb,0xc1,0x10,0x11, + 0x14,0x28,0xd1,0x78,0x05,0x7b,0xf3,0xf3,0xe1,0xfb,0xc3,0xbf,0xbd,0x79,0x7e,0x90, + 0x1e,0x1d,0xb5,0x93,0xf0,0xed,0xf3,0xff,0x82,0x79,0xff,0x2e,0x9e,0x0e,0xde,0xbc, + 0x7e,0x75,0xf0,0x1c,0xaf,0x7b,0x49,0x78,0xf8,0x57,0x6a,0xf9,0xe0,0xcf,0x78,0x7b, + 0x90,0x84,0xfb,0xcf,0x7e,0xc6,0xd3,0x43,0x7a,0xfa,0xe1,0x2f,0xcf,0xdf,0x1e,0xd2, + 0xcb,0xd6,0xd1,0xa3,0x24,0xfc,0xf3,0xdb,0x37,0xef,0xa9,0x24,0xf2,0x1e,0xcb,0xdb, + 0x0f,0x14,0xdf,0x1d,0xaf,0xdf,0x50,0xd1,0x57,0xaf,0x5f,0xbd,0x37,0x0d,0x7c,0x9b, + 0x84,0x6f,0xf6,0x0f,0x7f,0xc2,0xe3,0x77,0x04,0xfc,0xed,0xfe,0xb3,0xe7,0x0c,0x63, + 0x97,0x70,0xf8,0xe5,0xd7,0x97,0x87,0x2f,0xde,0xec,0x03,0x2a,0x61,0x42,0xa8,0x3c, + 0x7b,0xfd,0xea,0xf0,0xed,0xeb,0x97,0xfc,0x4a,0xa8,0xe4,0x19,0x7f,0xd9,0x80,0xdf, + 0x1f,0x78,0xef,0x0f,0xdd,0x77,0x00,0x24,0xac,0xde,0xee,0xff,0xf6,0xfe,0xd9,0xaf, + 0x07,0x87,0xaf,0x7f,0x09,0x8f,0x8f,0xed,0x67,0xbf,0xda,0xff,0xe5,0xf9,0x0f,0x3a, + 0xf2,0x4e,0xf3,0x8c,0xc6,0x65,0x04,0x43,0x7b,0xea,0x47,0xa5,0x4a,0x1d,0x1f,0xe5, + 0xae,0x9a,0x1d,0xed,0xc2,0x0a,0xc8,0xb6,0x15,0x97,0x10,0x8f,0x90,0x47,0x43,0xec, + 0x25,0x0c,0x1f,0x9f,0xd1,0xb4,0x88,0xe2,0xe3,0x74,0x76,0xd4,0x3e,0xae,0xcc,0x83, + 0x33,0x96,0xf5,0x29,0x28,0xf7,0x87,0x08,0x03,0xcc,0x4c,0x84,0xb9,0xee,0x62,0x91, + 0x66,0xcd,0xfe,0xb9,0x44,0x8b,0x72,0xc6,0x46,0x70,0x9c,0x33,0xbf,0x59,0x2e,0xf9, + 0x97,0xb4,0x4c,0xa5,0x25,0x57,0xfb,0xfa,0x47,0xfa,0xa7,0x65,0x24,0x66,0x97,0xcd, + 0xd4,0x03,0xb5,0xe2,0x43,0xda,0x4e,0xa6,0x1f,0x8c,0x19,0x0a,0xa9,0x3d,0x68,0xdc, + 0xd1,0x80,0x4b,0xea,0xd6,0x3f,0x12,0x0a,0x4b,0xec,0xa8,0x0a,0x5e,0x0d,0x26,0xc9, + 0x04,0xcb,0x0e,0x9a,0x22,0x9f,0xab,0x6d,0xba,0xec,0xd0,0x50,0x47,0xab,0x54,0x30, + 0x8e,0x27,0x22,0x4f,0xbe,0x98,0xf0,0x7b,0x42,0x62,0x5f,0xc9,0xd9,0x90,0x50,0xa5, + 0x10,0x16,0x95,0x92,0x82,0x54,0xd5,0x52,0x73,0xa5,0xa8,0x58,0x07,0x4d,0x9e,0xb4, + 0x97,0xcb,0xc9,0x53,0x32,0x22,0x5e,0x10,0x56,0x22,0xa6,0xc9,0x67,0xde,0x6c,0xe1, + 0x03,0x97,0x69,0xb4,0xfb,0xe4,0x09,0x8e,0x7f,0x9c,0xb3,0x89,0xe9,0x87,0x1e,0xf2, + 0x3a,0x4a,0xa5,0x1b,0xbf,0x3f,0x0e,0x89,0xd0,0x11,0x8a,0x08,0x17,0xc4,0x13,0x51, + 0x51,0x8a,0x1b,0x2a,0x32,0xb9,0xbb,0x6e,0xae,0x66,0x30,0xad,0x85,0xc4,0x24,0x9e, + 0xa7,0x70,0x2b,0x50,0x75,0xca,0xb5,0xfb,0x98,0xf7,0x8e,0xa6,0xea,0x36,0x10,0x1c, + 0xc6,0x31,0x95,0x6d,0xcd,0x2e,0x8b,0x8b,0x68,0x68,0x11,0x45,0x9a,0xb8,0xd0,0x4a, + 0x3c,0xb6,0x52,0xe8,0x5e,0xf2,0xa7,0xf9,0x78,0x14,0x0d,0x93,0xb3,0x04,0x0a,0xfe, + 0x84,0xfd,0xeb,0x26,0x38,0xe0,0x2a,0x2f,0x83,0xdf,0xaf,0xc4,0x8e,0x0b,0x8a,0xb3, + 0xe6,0xfd,0xc6,0x59,0xe3,0x7e,0x19,0x34,0xee,0x7e,0x83,0x7f,0x1b,0xf7,0x6b,0x43, + 0x92,0xde,0x6f,0xe0,0x97,0x8a,0x57,0x22,0xe3,0xde,0x6f,0x0c,0x69,0x87,0x26,0x70, + 0xee,0x16,0xdd,0xb2,0x2e,0xce,0x0e,0x35,0x1d,0x01,0xd5,0x5e,0x05,0x45,0xa4,0x20, + 0x0b,0xbf,0x40,0x0a,0x3e,0xcb,0xef,0x77,0xee,0xdf,0x8f,0xcb,0x97,0xaa,0x77,0x37, + 0x67,0xcb,0x2c,0xb4,0x30,0xa3,0x94,0x2c,0x0f,0xb3,0x22,0x2d,0x67,0x30,0x3c,0x99, + 0x55,0x66,0xaf,0x92,0x47,0xc8,0xa0,0xad,0xcf,0x3e,0x6c,0x8e,0xfc,0x3a,0x3b,0x4b, + 0x43,0xfe,0xfa,0x50,0x4e,0x76,0xf1,0x86,0x49,0x0d,0x82,0x06,0x12,0xbc,0x46,0x13, + 0x02,0x3c,0xec,0xd2,0x83,0x0d,0xc7,0x20,0x04,0xf7,0x3c,0xa3,0xad,0xeb,0x26,0x19, + 0x8a,0x36,0xb8,0x1f,0x3e,0x54,0xb0,0x2a,0x4a,0x50,0x5b,0x04,0xdd,0xc5,0x56,0xb4, + 0x20,0x75,0x9d,0xa5,0xd0,0x50,0x45,0x9b,0x92,0x0f,0x3e,0x07,0xb5,0x99,0x5a,0x4a, + 0xe1,0xd5,0x32,0x7d,0x42,0x63,0x53,0x00,0xac,0xd1,0xe4,0x83,0x12,0x08,0xe6,0xad, + 0x86,0x46,0x1d,0xcc,0x11,0x44,0x06,0xd7,0x08,0x28,0x02,0xf9,0x0f,0x00,0xb2,0x31, + 0x07,0xab,0xa0,0xdc,0x50,0x04,0x54,0xe1,0x72,0xec,0x85,0x39,0x41,0xa1,0xd5,0xc1, + 0xf5,0xdb,0xc5,0xf0,0xf4,0x82,0x46,0xce,0x27,0x2c,0xc8,0x42,0xd1,0xc0,0xba,0x59, + 0x75,0xe2,0x4e,0x9c,0xe4,0xb4,0xb8,0xe6,0x74,0xa4,0xc3,0x2b,0x72,0x81,0xf4,0x13, + 0xba,0xc3,0x64,0x06,0x9d,0x1c,0xdd,0xf6,0xaf,0x4c,0xbd,0xa2,0x1b,0xc8,0x89,0x08, + 0xa7,0xab,0xa9,0xb2,0x40,0x9e,0x60,0x0d,0x37,0xcc,0x05,0x21,0x25,0x21,0x53,0x82, + 0xc1,0x4b,0x30,0x49,0x8c,0x55,0x05,0x12,0x4c,0xa8,0x01,0x1b,0x59,0xa2,0x6e,0xc8, + 0xd7,0x68,0x8a,0x2a,0xfb,0xc1,0xaf,0xd2,0x50,0xbb,0xbb,0x76,0xe7,0xa4,0xdb,0x85, + 0x61,0x7a,0x61,0xa5,0xe1,0xfa,0x4b,0x6b,0x3b,0x31,0x8d,0x60,0x75,0xc4,0x9b,0x0f, + 0xa8,0x82,0xd5,0x06,0x83,0x05,0x19,0x15,0x02,0xf2,0x0c,0xfb,0x73,0xd6,0x16,0x67, + 0x6d,0xbb,0x28,0xf7,0x05,0x28,0xba,0xea,0x65,0x1e,0xa8,0xbb,0xb3,0xab,0x1e,0xf1, + 0xd3,0x13,0x88,0xe9,0x27,0xa5,0x65,0x8f,0xe5,0x9f,0xba,0xc4,0x50,0x11,0x69,0x09, + 0xeb,0x4c,0x1c,0xd3,0xd2,0xdc,0xb6,0xc7,0x84,0x34,0x3c,0xd2,0xd5,0xe6,0xe9,0x4b, + 0x64,0xe4,0xc8,0x92,0x4a,0x4f,0x31,0xfd,0x5f,0x11,0xf7,0x2a,0xfc,0xbf,0x07,0xce, + 0x2f,0x83,0x26,0xec,0x44,0x9a,0xd5,0x0b,0x4d,0xbf,0x95,0x83,0x28,0xec,0xf8,0x6b, + 0x89,0x41,0xe3,0x2a,0xef,0xcf,0x2a,0x84,0x3c,0x33,0x4d,0x23,0x23,0xc6,0x9f,0xf5, + 0xfb,0x4c,0xdb,0x61,0xbe,0x72,0xe9,0x26,0x5e,0xcb,0x16,0x9f,0xb1,0x60,0x3a,0xa0, + 0x55,0x82,0xfb,0x69,0xe1,0xac,0xfe,0x5f,0xde,0x1f,0x40,0xdc,0x76,0x49,0x6c,0xd7, + 0xdc,0xfa,0x2e,0xb1,0xbd,0x61,0xb8,0x53,0x48,0xe0,0xcb,0xe1,0x4a,0x47,0x17,0x3e, + 0xd1,0xbc,0xcb,0xa7,0x6a,0xcc,0x57,0x3f,0xac,0x2f,0xd4,0x36,0x05,0x8d,0x54,0xb4, + 0x7d,0xf4,0x5e,0x33,0x6d,0x2a,0x24,0x73,0xce,0x61,0x8a,0xf2,0x68,0xe5,0x62,0x5a, + 0xe0,0x2c,0x0e,0x09,0x3c,0xd2,0xf1,0x5e,0x19,0xe9,0x17,0xb4,0xe6,0x60,0xcf,0xb7, + 0x59,0x4f,0x2c,0xc0,0xd8,0x1b,0xef,0xfd,0xda,0x70,0xaa,0xcd,0x00,0xbf,0x41,0x53, + 0x63,0xa2,0x62,0xca,0x5b,0x37,0x45,0xb5,0xe2,0x27,0xa0,0x35,0x3c,0x70,0x20,0x10, + 0xc2,0x20,0xcc,0xf8,0x92,0x67,0x8c,0x55,0xc9,0x4b,0xb0,0x0d,0x80,0x46,0xf5,0x30, + 0x4e,0xd9,0x8e,0x25,0x7c,0x2a,0xbf,0xad,0x56,0xcb,0xc5,0x0a,0x1f,0x8c,0x2a,0x0e, + 0x57,0xc5,0x77,0x1a,0xae,0x8d,0x47,0x1d,0x33,0x2b,0xdc,0x97,0x83,0x49,0x9d,0x3c, + 0x05,0x8d,0x03,0x2e,0x42,0xcc,0xdc,0x63,0xd4,0x35,0x71,0xa2,0x99,0x04,0xba,0xe2, + 0xd9,0x78,0xb6,0xfe,0x02,0x27,0xa4,0xc2,0xf7,0xe2,0xa3,0x00,0x5b,0x8a,0xda,0x06, + 0x7c,0x99,0x29,0xe4,0xad,0x53,0x98,0x58,0xe5,0x55,0x42,0x07,0xfa,0xa7,0x08,0x1f, + 0xa4,0x39,0x61,0x5c,0x53,0x4d,0x37,0x5a,0x94,0x0f,0x2e,0x41,0x3f,0xbf,0x6a,0x4a, + 0x7d,0x0d,0xdb,0x40,0xe5,0x51,0xf5,0x07,0xeb,0x6a,0xc9,0xc6,0xcd,0xb6,0x72,0x80, + 0x77,0x19,0x92,0x6b,0x1b,0x9a,0xe6,0xc8,0x93,0xe0,0xc9,0x68,0x42,0xde,0xdb,0xea, + 0x86,0x3e,0x0b,0x06,0xe2,0x0c,0x27,0x40,0x49,0x3e,0x2e,0x0f,0xce,0x68,0x77,0x11, + 0x14,0x02,0xfb,0xd7,0xb7,0x2f,0x6b,0xe1,0xf2,0xce,0xd1,0x62,0x72,0x88,0xd7,0x00, + 0x0e,0x25,0x60,0x87,0x84,0x76,0x6c,0x94,0xc3,0xa2,0x13,0x2c,0x70,0x7b,0xea,0x26, + 0x58,0x48,0xd8,0x26,0x7a,0x00,0xb7,0xc4,0x0f,0xa8,0x7a,0x53,0xdb,0x80,0xee,0x48, + 0x6d,0x1b,0xff,0xf9,0xdb,0x61,0xe0,0xa4,0xaa,0x93,0xba,0xa0,0xe9,0x04,0xc1,0x46, + 0x4f,0xec,0x80,0xa2,0xec,0x0a,0x19,0x80,0x6b,0xc4,0xc1,0xad,0x8a,0xe0,0x08,0xea, + 0x39,0x7e,0x16,0x31,0x9a,0xbd,0xfd,0xba,0x7f,0x56,0x83,0x1a,0x09,0xa4,0x4a,0x7f, + 0xfe,0xdb,0x65,0x11,0xa9,0x55,0x26,0xaa,0x2c,0x0b,0x1f,0xea,0xf0,0xd0,0xfa,0xd5, + 0x52,0x86,0xee,0xf3,0x91,0xbf,0x3a,0x29,0x9c,0xfa,0xa1,0x0e,0x78,0x52,0x1f,0x43, + 0x2f,0x55,0x20,0x8e,0xcd,0x24,0x3a,0xdb,0x38,0x8f,0xd9,0xcc,0x4a,0x08,0x2b,0x61, + 0x10,0xb4,0x94,0xe1,0x27,0x46,0xc5,0x99,0x72,0x6a,0x76,0xf8,0x97,0x9a,0x6c,0x65, + 0x0e,0x3d,0x7d,0xe8,0x44,0x54,0xb8,0x47,0xff,0xb7,0xb8,0x5c,0xc7,0xec,0x35,0x6d, + 0x84,0x92,0x5f,0xfa,0x33,0xd5,0x52,0x70,0x09,0x02,0xa2,0x33,0x4f,0x67,0x92,0xcd, + 0x40,0x0a,0x3a,0x94,0x36,0xb5,0x9a,0xa6,0x0d,0x25,0xa5,0xf7,0x84,0xcd,0xc5,0xb5, + 0x54,0x0d,0x08,0xd5,0x85,0xac,0x82,0xc6,0x74,0x58,0x4d,0xe6,0x61,0xbf,0x9a,0xac, + 0xc3,0x72,0x35,0x47,0x56,0xaf,0x0e,0xbe,0xe9,0x9e,0x6e,0xbb,0x6f,0xaa,0x97,0x1b, + 0x0c,0x49,0x6a,0x16,0xb0,0x33,0xb3,0x4c,0x5c,0xd5,0x4b,0x29,0xb4,0x25,0x08,0x1b, + 0x67,0x3c,0x84,0xae,0xe2,0xab,0x0d,0x96,0x3b,0xd2,0xc0,0xd1,0x99,0x5a,0xb4,0x6f, + 0x3c,0x52,0x11,0xad,0xd5,0x6d,0x67,0x2a,0xc9,0x78,0x45,0x7d,0x0a,0xfb,0xad,0x14, + 0x09,0x9b,0x25,0x48,0x19,0x76,0xe2,0xf7,0x60,0xeb,0xc8,0x3d,0x1a,0x4d,0xec,0x11, + 0x68,0xcd,0x79,0x22,0x96,0xdc,0xfa,0xe3,0x55,0x64,0x24,0xec,0x2e,0x21,0x5e,0xa7, + 0xe6,0x9f,0x29,0x29,0x41,0x48,0x20,0xe9,0x4b,0xad,0xfc,0x35,0x3c,0x0f,0xeb,0x04, + 0xa5,0x0a,0x24,0x11,0x9a,0xba,0xa2,0xc0,0xdc,0x48,0x49,0xf8,0xa6,0xab,0x23,0xe4, + 0x89,0xa5,0xa3,0x22,0xd2,0x5b,0x49,0xd1,0xe3,0x07,0x6c,0x7b,0x10,0xbc,0xa2,0x53, + 0xba,0xd6,0xba,0x77,0x52,0x65,0x16,0x88,0x4e,0x92,0x9e,0x58,0x0c,0x51,0x41,0x55, + 0x37,0x1d,0x1c,0x26,0xa7,0x5c,0x84,0xf6,0xa0,0x09,0x49,0xaa,0xf2,0x42,0xc4,0x52, + 0x15,0x91,0xc3,0xb6,0x4e,0x6e,0x97,0xe6,0xbf,0x58,0x3e,0x74,0xc4,0x75,0x6a,0x1d, + 0x24,0xdc,0x20,0x9a,0x7a,0x2e,0xb4,0x60,0x4b,0xf2,0xe3,0x34,0x87,0xc1,0x0a,0x69, + 0x8e,0xc6,0x85,0x1e,0xde,0xd4,0x1a,0xa6,0x00,0x73,0xca,0xa8,0xd0,0x8a,0x16,0xa4, + 0x74,0xb3,0x91,0x0a,0x95,0x88,0xe9,0x7f,0x6b,0xa6,0x22,0xd4,0xd1,0x60,0x4d,0xaa, + 0x10,0x34,0xf1,0x9a,0xa2,0x10,0x7b,0xcb,0x10,0xdb,0x18,0x99,0x7f,0xaf,0xc0,0x14, + 0x43,0x80,0xc3,0x51,0xe7,0x14,0x66,0x7d,0x1f,0xa8,0x13,0xd8,0x81,0x4c,0xf7,0xb4, + 0xba,0x89,0x28,0xc8,0x53,0x6d,0x0d,0x32,0x2c,0xd7,0xc0,0xaf,0xdd,0x0c,0xfe,0x6c, + 0x9f,0x5d,0x90,0x10,0x1a,0x9d,0x56,0x25,0x53,0xe8,0xa0,0x85,0x52,0x45,0x44,0x10, + 0xf3,0x7e,0x02,0xca,0x6e,0x74,0xa8,0x04,0x91,0xd4,0xcb,0x5f,0xe7,0x8e,0x53,0x83, + 0x1c,0x91,0x82,0x84,0x95,0xfa,0xf5,0x3a,0xf8,0x82,0x18,0xa4,0xa3,0xae,0x4e,0x4e, + 0x4a,0x8f,0x34,0xe9,0x8e,0xce,0x72,0xd5,0xfb,0xf5,0xe3,0x5e,0x59,0xf3,0xa8,0x7f, + 0x5c,0x2a,0x20,0x7b,0xed,0xce,0x6e,0xdc,0xd9,0x33,0xe3,0xf8,0x64,0xb5,0xe2,0x89, + 0x5b,0xf1,0xa4,0xa6,0xa2,0x1a,0x17,0xd3,0xd0,0x3b,0x59,0x2e,0xfb,0xad,0x11,0x69, + 0x9e,0x46,0x19,0x9d,0x5e,0xd1,0x28,0xcf,0xa8,0x3a,0x91,0xad,0xfe,0x6e,0x90,0x7c, + 0x1f,0x8e,0xee,0xdd,0x73,0x7d,0xf3,0xf1,0xf0,0x6f,0x98,0xa2,0x48,0x47,0x8a,0xdd, + 0xf0,0xbc,0x13,0x52,0x6f,0x6f,0xf3,0x4f,0x4b,0x6c,0xb2,0x61,0xcc,0xea,0x1c,0xf9, + 0x62,0x0f,0x26,0x55,0x6c,0xc6,0xec,0xca,0x4f,0xf7,0xee,0xba,0x7b,0xb9,0x9e,0x9b, + 0x15,0x3f,0xd3,0xf7,0xa9,0xe2,0x15,0xf0,0x5c,0x66,0x78,0x99,0x7c,0xfa,0x53,0x9f, + 0x1d,0xe3,0xa3,0xcd,0x57,0x89,0x02,0x18,0xdf,0xec,0xf6,0xbd,0x14,0xd4,0xd3,0x17, + 0x6c,0x72,0xe9,0xec,0xdc,0xa9,0x15,0x2f,0xcc,0x01,0xc5,0x2b,0xb3,0xf3,0x9d,0x4f, + 0xc5,0x31,0x75,0xac,0x1a,0x58,0x26,0xae,0x04,0x70,0x28,0x63,0x20,0x74,0x0d,0x04, + 0x24,0xf2,0x5f,0x1b,0x95,0x24,0xb5,0x3e,0x25,0xa5,0xed,0x4a,0xa4,0x9f,0x44,0x3d, + 0x98,0x69,0x2c,0x3d,0x38,0xe2,0xea,0x7c,0x99,0x77,0x3a,0xe9,0xe8,0x8a,0x2f,0xb4, + 0xd8,0xf7,0xe1,0xe6,0x07,0xfc,0xf1,0x8a,0xdb,0x53,0x22,0xf1,0xdc,0xe5,0xb9,0x77, + 0xdc,0xb2,0xbe,0xff,0xd4,0x9c,0x31,0x01,0x05,0x56,0xbd,0xff,0xcd,0xa6,0xa3,0x11, + 0xfc,0x65,0x8d,0xb0,0x63,0x4e,0xda,0xf4,0x1f,0x00,0x24,0x4c,0xa3,0x44,0xe8,0x91, + 0xa0,0x69,0x78,0xd9,0xbc,0xcd,0x9d,0x6c,0x6a,0xdd,0xc9,0xd6,0x63,0xa7,0x16,0x0d, + 0xbc,0x79,0x8f,0x4f,0x4f,0xf8,0xc0,0x23,0xe1,0x34,0xdb,0x7b,0x80,0xe8,0x46,0x3f, + 0x21,0x4d,0xbb,0xfb,0xbe,0xfb,0x80,0x5a,0xdd,0x0c,0x9e,0x41,0x60,0x34,0xa1,0xa4, + 0x67,0xcd,0x78,0xc7,0x2b,0xa8,0x52,0xdd,0x59,0x09,0xa4,0xf3,0xcb,0x4f,0xa5,0xa1, + 0x41,0xd1,0xcc,0xb8,0xa7,0xac,0xc5,0x4f,0xed,0x67,0xb1,0x9c,0x20,0x43,0x36,0x72, + 0xab,0x73,0x34,0x6d,0x0b,0xa3,0x21,0x18,0xf7,0x42,0x58,0x6d,0xf3,0x23,0x2e,0xc9, + 0x94,0x7a,0x5a,0x80,0xf7,0x09,0xf3,0x9d,0x92,0x5f,0x86,0x75,0x2a,0x03,0xfb,0xee, + 0x5d,0x6a,0x49,0xbe,0x99,0x9c,0xb7,0x7e,0x57,0xb8,0x3f,0x11,0xef,0xf4,0x22,0xd5, + 0x05,0x50,0x61,0x66,0x98,0x9a,0xe6,0x48,0x51,0x3d,0x06,0x4b,0x7c,0x25,0x72,0xb4, + 0x54,0xf9,0xac,0x55,0x74,0xd1,0x42,0x2d,0xbe,0xbe,0xba,0x49,0x83,0x93,0x9b,0x45, + 0x41,0x18,0x84,0x59,0xdc,0x53,0x9f,0x63,0x2a,0x07,0xf6,0x79,0xa6,0x97,0xe3,0x73, + 0x4d,0x3f,0xdf,0xe7,0x9b,0x7e,0xb6,0xcf,0x39,0xbd,0x22,0x3e,0xef,0xf4,0xb2,0x7d, + 0xee,0xe9,0x17,0x10,0xb6,0x45,0x88,0x53,0x5c,0x1b,0x61,0x11,0x6f,0xf8,0x99,0x06, + 0x69,0xe5,0xeb,0x45,0xd4,0x94,0x72,0x98,0x05,0xf5,0x41,0x1b,0xa4,0x2d,0x96,0xa2, + 0x58,0x8c,0x84,0x20,0xc2,0x5d,0xaa,0x35,0xdd,0x7e,0x72,0xc5,0x81,0x6a,0x37,0x54, + 0x7b,0x90,0xa4,0x90,0x22,0x19,0x0e,0x46,0x59,0x91,0xf4,0x21,0x80,0x69,0x47,0xaa, + 0x6b,0xb5,0xc4,0xc4,0x02,0x43,0xb9,0x14,0x7f,0x70,0xbb,0x85,0xcb,0xa7,0xf8,0xcb, + 0xaf,0x5b,0x7d,0x8d,0x42,0xb4,0x5c,0x5a,0xf6,0xbc,0xd1,0xfb,0x9c,0xcf,0xac,0xfd, + 0x18,0xa6,0x70,0xd6,0x1a,0xdd,0xc6,0x98,0xb6,0x7c,0x07,0x95,0xc2,0xa9,0x7d,0xcf, + 0x9f,0xba,0x04,0xb1,0x5f,0x4e,0x99,0xc7,0xf8,0xfa,0xe0,0xaa,0x5f,0xe8,0x35,0x2c, + 0xd2,0xb6,0xab,0x07,0xc1,0x69,0x8e,0x44,0x0d,0x22,0x31,0xe5,0x5b,0x03,0x46,0x29, + 0x32,0x67,0x0f,0xb2,0x94,0xc2,0x8a,0xfe,0x96,0x5d,0xc3,0xbc,0x39,0xc7,0x84,0xac, + 0xcc,0x39,0x4e,0xe9,0x85,0x07,0x6a,0xf7,0x5a,0x90,0xf4,0x95,0xa0,0x7b,0x03,0x63, + 0xe2,0x21,0xf1,0x27,0x80,0x11,0x5c,0x94,0xf1,0x14,0x84,0x86,0x18,0x08,0xa8,0x2b, + 0x16,0xe1,0x41,0xea,0xd5,0xdb,0xc4,0x1d,0x14,0x44,0x35,0x18,0x9c,0x4c,0x5c,0x98, + 0x85,0xfb,0xf6,0xf1,0x3b,0xf2,0xcd,0x3d,0x61,0x3e,0x61,0x83,0x76,0xa6,0x64,0x2a, + 0xf8,0xeb,0xdb,0x17,0x10,0x8b,0xa6,0x13,0x88,0xad,0xc2,0x8f,0x92,0x85,0xb1,0xa9, + 0xec,0x10,0x2f,0x6f,0xdf,0xac,0x0d,0x78,0xc5,0xa5,0xef,0x95,0x5c,0x4c,0xfa,0x4b, + 0xe9,0x61,0x63,0x62,0xf1,0x2a,0x63,0x62,0x30,0xd0,0x42,0x53,0x1f,0x89,0xcb,0xe7, + 0x29,0x32,0x1c,0xc1,0x06,0xeb,0x47,0xe3,0x4d,0x42,0xb8,0xd5,0x35,0x86,0xed,0xf4, + 0x00,0xb2,0xa0,0x60,0xc9,0x70,0x9e,0x3c,0xbc,0x5b,0xb3,0x76,0x22,0x34,0x76,0xbd, + 0xa9,0xe0,0x35,0xfe,0x8d,0xdb,0xb8,0x7e,0xb8,0x4e,0xbc,0xcd,0xdc,0x59,0x18,0x02, + 0xea,0x14,0x69,0x5b,0xee,0xc8,0x4b,0xfc,0x6a,0xcd,0x06,0x65,0x81,0x92,0xf1,0xf8, + 0x57,0xe3,0x61,0x7d,0xae,0x7a,0xe2,0x0f,0x14,0xe1,0xee,0xf5,0xcf,0x3b,0x43,0x91, + 0x8a,0x87,0xc6,0x2d,0x9e,0xb9,0xfc,0x41,0x87,0xea,0xdc,0x4a,0xa3,0x21,0xef,0xa7, + 0x64,0x89,0x8f,0xd8,0x5b,0xce,0xa4,0xa4,0x2a,0x58,0xb8,0x98,0x61,0x69,0x6a,0x4c, + 0x25,0x54,0xf4,0x95,0x6c,0xc8,0xd7,0x65,0xb6,0xa6,0xf9,0x5e,0x20,0x35,0x9d,0xdb, + 0x92,0xe7,0x34,0x55,0x7e,0x25,0x7d,0xb1,0x23,0x0c,0x6f,0x05,0xdd,0xd8,0x21,0x82, + 0xba,0xba,0x50,0xcd,0xc2,0x9a,0xe0,0xc5,0xf7,0x45,0x48,0x0b,0x1c,0x7d,0x3f,0xda, + 0x74,0x6f,0xbf,0x40,0x50,0xa8,0x6e,0x0c,0xb1,0xed,0x7a,0xfd,0x73,0xd8,0xd1,0x86, + 0x6d,0xc0,0xdf,0xbf,0x13,0xeb,0x8c,0xa6,0x79,0xdc,0x3b,0xea,0x24,0xc7,0xbd,0x77, + 0xc5,0xd7,0x3b,0xc3,0x24,0x0c,0xf5,0x14,0xc2,0x86,0x7f,0xba,0xea,0xe7,0x93,0x8d, + 0xd6,0xf5,0xf6,0x43,0x62,0xdb,0xcf,0xe8,0x79,0x74,0xc4,0xd3,0x36,0x6e,0x72,0xd3, + 0xee,0xf6,0x3d,0x75,0x5c,0xaa,0xdd,0xed,0xb9,0x62,0xe6,0x80,0xa8,0x6f,0x85,0x75, + 0x45,0xd6,0x6b,0x00,0xe7,0xbd,0x37,0x11,0x1d,0x69,0xb2,0xf9,0x6c,0xaf,0x12,0xdb, + 0xfd,0x66,0xcb,0x67,0x80,0x86,0xac,0xb7,0xbb,0x0f,0x55,0xf6,0xa9,0xfe,0x6d,0xd1, + 0x96,0xa2,0x80,0xcf,0x5a,0x2e,0xe5,0x8b,0x62,0x6b,0xa3,0x74,0x30,0x3d,0x83,0x81, + 0xb2,0x63,0x35,0x2e,0xbd,0x87,0xcd,0x64,0x2a,0xa5,0x7b,0xcc,0x78,0xfd,0x50,0x9f, + 0xb2,0xf0,0x09,0x0f,0x2c,0xa6,0x63,0x1a,0x4b,0xca,0x1b,0xc9,0x78,0xc3,0x8a,0x5a, + 0x88,0x1a,0x2a,0x31,0xe6,0x38,0x18,0x26,0xe0,0x3a,0x37,0x5f,0x15,0x31,0x97,0xb3, + 0xf6,0x3f,0x56,0x6a,0x0d,0x0b,0x29,0x8f,0xdc,0x56,0xd8,0xa9,0x2d,0x58,0x8f,0x1b, + 0xae,0x6b,0x6d,0xf4,0x90,0x7d,0x67,0xb9,0xdc,0x67,0x20,0xf7,0x4a,0x8a,0xd2,0x66, + 0xc9,0x90,0xd4,0xb7,0xbc,0x47,0x57,0x88,0x6a,0x04,0xce,0x12,0xeb,0x86,0x87,0xcb, + 0xff,0x0c,0x10,0x59,0x6c,0xf0,0x52,0xf4,0x64,0xfa,0x87,0x4a,0xd7,0xa8,0x88,0x4b, + 0xa2,0x06,0x4d,0x4a,0xa5,0xa5,0x84,0x95,0x65,0xa0,0xc9,0x3a,0xfa,0xfb,0x45,0x1d, + 0xab,0x1c,0xfd,0x02,0x1a,0xa5,0xee,0x55,0x29,0xee,0xfc,0x52,0xaa,0xda,0x97,0x00, + 0xf8,0x2a,0xe3,0xb9,0xcc,0xc7,0x97,0xcc,0x2a,0x5c,0xc8,0x03,0x73,0x20,0xb2,0xd9, + 0x06,0x30,0xbe,0x04,0xe7,0x83,0x2a,0xe5,0xb3,0x3a,0x18,0xb5,0x32,0x9e,0xe6,0xd7, + 0x08,0x79,0x7e,0x09,0x6a,0x03,0xea,0x54,0x99,0xfa,0x51,0x2e,0xf1,0x78,0x86,0x33, + 0x5c,0xf6,0x2e,0x87,0x21,0x2c,0x39,0xb2,0x41,0xf5,0x1e,0x36,0xcc,0x43,0x25,0x2a, + 0xae,0x04,0x9e,0xc2,0x02,0xde,0x17,0x8a,0xc1,0x48,0xe0,0x53,0xf0,0x51,0x8c,0x0c, + 0xe9,0x7e,0xf6,0x90,0xfe,0x0e,0x75,0xe4,0x17,0x4e,0x70,0x62,0x89,0x4e,0x35,0x83, + 0xe1,0x2f,0x24,0x97,0x51,0x7f,0x46,0xea,0x68,0x31,0x4d,0xe8,0xcf,0x35,0xd8,0x95, + 0xf1,0x0a,0x8e,0x28,0xb2,0x78,0xd2,0x46,0x30,0x83,0xd6,0xf5,0x55,0x05,0xf9,0x61, + 0xa1,0x0e,0xcc,0x69,0x80,0xc8,0xdd,0x4a,0xf8,0xc8,0x85,0x53,0xf1,0xef,0xb5,0x7a, + 0x09,0x34,0xf8,0x91,0xf9,0x0c,0x4a,0x40,0xb5,0x66,0x4b,0xc8,0x6d,0xea,0x24,0x40, + 0x3c,0x7c,0xb9,0x4d,0x99,0xf0,0x27,0xe3,0x2a,0x46,0xd5,0x53,0xf9,0x70,0x80,0x19, + 0x37,0x97,0x9b,0xf3,0xfe,0x28,0xb8,0x1b,0x82,0x80,0x25,0x53,0x3c,0x30,0xe3,0x22, + 0x38,0x1b,0xf5,0xcf,0x71,0xd7,0xb3,0x50,0x54,0x21,0x09,0x0f,0x4f,0xcd,0xb5,0x4d, + 0x9d,0xf4,0xc1,0x6f,0x20,0x15,0xdf,0xf4,0x27,0x58,0x5a,0x39,0x11,0x2c,0xa7,0xc4, + 0x00,0xba,0x72,0xf9,0x94,0x56,0x83,0x81,0x23,0x28,0x5e,0x16,0x28,0x6d,0x1b,0x95, + 0x53,0x2d,0x7c,0x80,0x37,0xf6,0x36,0x62,0x3e,0x9f,0x4a,0xdc,0x43,0x07,0x10,0xbb, + 0x44,0xb4,0x30,0xf8,0xd2,0x8c,0x33,0x68,0x84,0x2b,0x12,0x5d,0x51,0xb7,0x44,0xc7, + 0x73,0x3c,0x0d,0x2c,0xee,0x48,0x2c,0x8c,0x49,0x65,0x05,0xee,0x38,0xf3,0x87,0x14, + 0x7a,0x4e,0x07,0x94,0x81,0xdb,0x97,0x3e,0xa7,0x5b,0x1c,0x44,0x9e,0x66,0xbf,0x80, + 0x13,0xec,0x6c,0x60,0x07,0x5b,0xb2,0x25,0x3b,0xc5,0x35,0x23,0xae,0x17,0xae,0x8c, + 0x25,0x83,0xd3,0xd1,0xeb,0x9f,0x8f,0x83,0xa6,0x65,0xe3,0x61,0xc7,0x1f,0x13,0x35, + 0x20,0xb4,0xd7,0xeb,0x41,0xf8,0x0b,0x41,0x4d,0x89,0xa4,0x9c,0xc8,0x89,0x24,0x1e, + 0x80,0x16,0x83,0x22,0xca,0x31,0xe1,0x6b,0x19,0xb2,0xdd,0x7e,0xb9,0xdb,0xed,0x83, + 0x12,0x7e,0x68,0x84,0xb3,0xba,0xca,0xfe,0x9a,0x2a,0x5a,0xca,0xbb,0xab,0x70,0xd6, + 0x2e,0x55,0xbe,0x34,0xd0,0xbb,0xe3,0x3e,0x48,0xb7,0x3e,0xe8,0x53,0xd9,0xfa,0x14, + 0xba,0x7e,0xda,0x65,0x02,0xfb,0x98,0xd5,0x2a,0x76,0x38,0x49,0x0b,0xd4,0xf7,0x77, + 0x10,0xbb,0x37,0x0b,0xdd,0x3c,0x76,0x1c,0x12,0xdf,0xaa,0x79,0x6a,0x3f,0xac,0xdb, + 0x95,0xa0,0xb9,0x27,0x7b,0xed,0xbb,0x6f,0x09,0x1a,0xbb,0x8a,0xdd,0xe7,0x6e,0x09, + 0x7c,0xf5,0x87,0xdf,0xc1,0x0b,0x13,0xbf,0x08,0x26,0x27,0x81,0xb8,0x1a,0x15,0xdb, + 0x8a,0xa2,0x8c,0xee,0x40,0x87,0x17,0x27,0x27,0x19,0x6c,0xc0,0xb4,0xaf,0x20,0xd4, + 0x16,0x5b,0x77,0xba,0xfd,0xac,0xb7,0x9a,0xeb,0xee,0x1d,0xff,0xe1,0x6b,0xc3,0x22, + 0x16,0xae,0xb9,0x3b,0xec,0x44,0x33,0x88,0xaa,0xa6,0x47,0xce,0xb6,0xe2,0x03,0x6c, + 0xa1,0xa5,0xa4,0xe3,0x38,0xce,0xc9,0xc6,0xc6,0xb9,0xfe,0xea,0xb9,0x86,0xcd,0xaa, + 0x71,0x0f,0x67,0x01,0x09,0xe4,0xcd,0x57,0x78,0xd5,0x75,0xdb,0xbd,0xc8,0x1e,0x04, + 0x57,0xf0,0x8d,0xff,0xd0,0x1d,0x64,0xd0,0xcb,0xf5,0xc1,0x76,0x64,0x6e,0x91,0xb2, + 0x97,0x93,0x44,0x5f,0x4e,0xae,0xca,0xc7,0xe2,0xac,0x7c,0x3c,0xcd,0x8f,0xad,0x15, + 0xaf,0x7f,0xeb,0xd4,0x01,0x2a,0xad,0xe0,0x22,0x8d,0xb4,0xe1,0xdd,0xb4,0x51,0x72, + 0x97,0x6e,0xde,0xaa,0x1e,0xd4,0x12,0x07,0x92,0x21,0x41,0x09,0x2a,0xae,0xf1,0xb9, + 0xa6,0xed,0xf1,0xe3,0x1b,0x3e,0x54,0x8c,0xca,0x0a,0xbd,0x6a,0xc9,0x8e,0x0b,0xdb, + 0x9a,0x89,0xdf,0xed,0x6e,0xb6,0x5a,0x1b,0x0e,0xae,0xd3,0x05,0xa8,0xd5,0x69,0x27, + 0x27,0x57,0x9d,0xdd,0xa4,0x38,0xeb,0xec,0x25,0xa7,0x79,0xe7,0xc1,0x8d,0x77,0x3f, + 0xa5,0xbb,0x55,0x12,0xdf,0x22,0x77,0x44,0xf5,0x8f,0x37,0x7a,0x20,0x2c,0x91,0xc7, + 0xdc,0xfc,0x9f,0x7d,0x71,0x57,0x2f,0x5d,0xde,0xf5,0x76,0x6e,0x7d,0xf0,0x0a,0x8f, + 0xcd,0xd8,0x38,0x49,0x15,0x1f,0x9c,0xe9,0x02,0x77,0xa3,0x3a,0x7a,0xc0,0x91,0x08, + 0xa7,0xe9,0x90,0x1f,0x1b,0xa3,0x81,0xc2,0x33,0xc9,0xef,0x75,0x57,0xb0,0x52,0x03, + 0x43,0xe4,0xdc,0x48,0x61,0x50,0xbb,0xce,0x65,0x15,0x53,0xc6,0xe7,0x44,0xb2,0x62, + 0xd5,0x42,0x4d,0x15,0x6e,0x5c,0x9b,0x0d,0x55,0x5a,0xfd,0x22,0xf8,0x85,0x20,0xeb, + 0x63,0xea,0x99,0xd5,0xfa,0x47,0xde,0x49,0x61,0x29,0x63,0xfd,0x9b,0xf2,0xd7,0xad, + 0x3a,0x2a,0x3f,0x93,0x18,0x86,0xf8,0xc6,0x92,0xea,0x54,0x6c,0x63,0xd4,0x5f,0xab, + 0xbc,0x55,0x65,0x11,0x8a,0x86,0xf1,0x17,0xda,0x0a,0x44,0x6a,0x23,0x1d,0x77,0xab, + 0xd6,0x00,0x98,0x7b,0x2e,0x36,0xde,0xf4,0xd3,0xa0,0x2f,0xd7,0x35,0x53,0x86,0x0a, + 0x27,0xd7,0x44,0xd2,0x93,0x18,0x1f,0x7f,0xa4,0xd7,0x13,0xc5,0x22,0x53,0xbc,0xb6, + 0xd2,0x0f,0xc7,0xef,0x09,0x13,0xf9,0xba,0x55,0xd8,0x73,0x51,0xe2,0xce,0xc9,0x2c, + 0x65,0xbe,0x5e,0x79,0x32,0xa7,0x7e,0xb0,0xd6,0x0a,0x73,0x75,0xdc,0xe5,0x24,0x11, + 0x1e,0xa6,0xa9,0x98,0x65,0xd7,0x03,0x3c,0x6b,0x0c,0x31,0xe2,0x3c,0x33,0x49,0xd8, + 0x10,0x42,0x50,0x5b,0xd4,0x10,0x82,0x89,0x07,0x1d,0x69,0x7e,0xb3,0x36,0x43,0x3a, + 0x7c,0x34,0x8c,0x7c,0xfb,0x83,0xb3,0xf1,0xfc,0xd7,0x19,0xe2,0xdf,0xb2,0x2d,0x95, + 0x1b,0x41,0xbd,0xd8,0xf9,0xf6,0x31,0x14,0x95,0xc9,0x45,0x25,0xf5,0x3f,0x38,0x75, + 0xe7,0xc1,0x63,0x64,0x8d,0xab,0x59,0x48,0xdc,0x79,0xdc,0xb6,0xda,0x80,0xc1,0xd3, + 0x76,0x6f,0xd0,0x08,0x07,0x41,0xd8,0xb8,0x68,0x84,0x17,0x61,0x27,0xba,0xa0,0x14, + 0x3c,0x52,0xca,0xb8,0x11,0x8e,0xc3,0x0e,0xff,0x75,0xc3,0x7a,0xcd,0x87,0xf4,0x99, + 0xc3,0xe4,0x24,0x21,0xa4,0x6a,0xee,0x0d,0x20,0x1b,0xf7,0x17,0x9e,0x1a,0xeb,0xca, + 0x21,0x99,0x5b,0xc2,0xb8,0x1f,0xcf,0x78,0x88,0x8a,0xde,0x7d,0xba,0xa5,0x40,0x4f, + 0x62,0x20,0xe9,0x5d,0xac,0x70,0x1a,0x72,0x3b,0x62,0xe1,0xf6,0x01,0xc4,0x28,0x79, + 0xf6,0x43,0x3c,0x11,0x51,0xcb,0x58,0x50,0x65,0xa9,0xe4,0x01,0x1c,0x09,0xba,0x80, + 0x2d,0x2c,0x28,0xa0,0x2a,0x20,0xe2,0xc5,0xe7,0x44,0x94,0xba,0x71,0xa0,0x3a,0x58, + 0xf9,0x11,0x8d,0xeb,0x03,0x1a,0xa3,0xe9,0x3a,0x2d,0x36,0x06,0x34,0xd7,0x6a,0x12, + 0x07,0x59,0x0d,0x01,0x37,0xc2,0xfe,0x1e,0xea,0xa6,0x56,0x2b,0x2c,0x85,0xc2,0x8d, + 0x75,0x42,0xb3,0xaa,0x9f,0xa4,0xce,0x45,0xf8,0xa2,0x75,0x91,0x51,0x20,0x63,0x5a, + 0x5c,0x32,0xba,0x07,0xbf,0xf7,0xd0,0x28,0x23,0xd1,0x7d,0x45,0x25,0x0c,0xf4,0x16, + 0x77,0x78,0xf8,0xeb,0x0c,0x9a,0xfb,0x30,0x31,0x03,0xb2,0x75,0xc9,0xef,0xef,0x8b, + 0x38,0x6e,0x98,0x12,0xdf,0x8b,0x23,0xa4,0x30,0xa1,0xdc,0x13,0x7a,0x7e,0x3f,0xfe, + 0x48,0x90,0x89,0xf4,0x34,0x37,0x7e,0x1c,0x5e,0x67,0x83,0x68,0x2f,0x4e,0xc2,0xbf, + 0x84,0x65,0x85,0x1f,0xa9,0xed,0x00,0x58,0xd0,0xc2,0x79,0x92,0x84,0x3f,0x7f,0x4f, + 0x71,0x65,0xa1,0x2a,0x0b,0x1b,0xab,0x78,0x52,0xba,0xa0,0x59,0xd6,0xa6,0x60,0xc8, + 0x41,0x7f,0x44,0xd6,0x17,0x61,0x52,0x53,0x1c,0xa1,0x14,0x90,0x29,0x95,0x00,0xdc, + 0xb6,0xfb,0x6a,0x3a,0xa4,0x59,0xcd,0x93,0x22,0x4c,0x8a,0xd6,0x04,0xaf,0x49,0x38, + 0xf8,0x7e,0x6c,0x8b,0xbc,0x84,0xf7,0xa6,0xb7,0x07,0x07,0x2f,0x50,0x20,0xa7,0xcd, + 0x26,0xe7,0x13,0x7e,0x07,0xaf,0xde,0x72,0xec,0xdb,0x62,0x92,0x97,0x85,0xf7,0x87, + 0x39,0x68,0x11,0x1c,0xfe,0xd5,0x92,0xa7,0x8f,0x34,0xa1,0x8f,0x5f,0xec,0xad,0x53, + 0x8c,0x5c,0x65,0xd6,0x94,0x94,0xa5,0xbc,0xe0,0x92,0xec,0xc3,0xea,0x63,0x02,0x7b, + 0x1e,0x34,0x8c,0x1a,0xf4,0xb8,0x52,0xf4,0x90,0x8b,0x62,0xc3,0x64,0xc9,0x8b,0xb8, + 0x0b,0x04,0x63,0xe7,0xb0,0x04,0xf3,0x1e,0x1f,0x4d,0x13,0x3e,0xd8,0x01,0x2c,0x2e, + 0x2e,0x49,0x65,0xa5,0x1f,0x86,0x54,0x6e,0xee,0xd5,0x1a,0x70,0x62,0xb5,0x9a,0xa4, + 0x69,0x3d,0xba,0x94,0x19,0x90,0x1a,0xfd,0x32,0x43,0x9d,0xf9,0xf5,0x7b,0x7e,0xa6, + 0xcc,0xc8,0x89,0xa7,0x6b,0xba,0xed,0xbf,0x0e,0x0f,0x6d,0x51,0x30,0x7b,0x53,0xb8, + 0x13,0x5a,0xf2,0x43,0x4f,0xa0,0xe4,0x97,0x7d,0x72,0xd9,0x07,0xb6,0xd0,0x8b,0x37, + 0xc8,0x1d,0xce,0xe8,0xb0,0xaf,0x09,0xd6,0xca,0x37,0xd7,0xd0,0x1e,0xd8,0x31,0x46, + 0x01,0x8d,0xaa,0xb8,0xeb,0xa6,0x4a,0x57,0x6b,0x97,0x43,0x0e,0x9e,0x91,0x81,0x3e, + 0x0b,0x54,0xfc,0xd4,0xe4,0xc1,0x18,0x27,0x2e,0x90,0xb8,0xeb,0x17,0xe2,0xca,0xb6, + 0x94,0x02,0xf3,0x9d,0x2d,0x89,0xbc,0x3e,0x4a,0x0b,0x1b,0x62,0xa9,0x5b,0xce,0x53, + 0x95,0xde,0x9c,0x79,0x56,0x8c,0x8c,0x99,0x4b,0x8f,0x9e,0x2a,0x37,0xc5,0xd4,0xa3, + 0xc9,0x59,0x1a,0x5d,0xe3,0x9a,0x82,0xb9,0x8e,0x19,0xe3,0x3e,0x66,0x85,0xf7,0x7e, + 0xf8,0xc8,0x9c,0x57,0x98,0x2e,0xb1,0xb9,0x4f,0xa3,0x2c,0x0d,0xcf,0x88,0x0d,0x34, + 0xaf,0x70,0x15,0x88,0x0f,0xdd,0xba,0xc4,0x41,0xa6,0x79,0x87,0xe0,0x45,0xcd,0xe6, + 0xf8,0x72,0x1e,0x87,0x4f,0x8d,0xc5,0x68,0x70,0x7f,0x0b,0x76,0xfa,0xda,0x86,0xdc, + 0x28,0x81,0xe6,0x2f,0xf2,0xef,0x95,0xc4,0x95,0x8b,0x25,0x52,0x3e,0x8e,0x2b,0xb6, + 0xf4,0xc6,0x88,0x8d,0xe6,0xe4,0xbc,0x00,0xda,0xd3,0x0f,0x82,0xf4,0x72,0x79,0x8d, + 0xa8,0x6a,0xce,0x17,0xc0,0xb1,0x28,0xf2,0x69,0x78,0x4d,0x3f,0xf0,0x08,0xe3,0x12, + 0xf4,0x4a,0x7f,0x4b,0xd7,0xff,0x75,0xdf,0x29,0x46,0xfc,0x54,0x7c,0x22,0x21,0xa9, + 0x05,0x7b,0x73,0xcb,0x40,0x97,0x9e,0xea,0xfd,0x2c,0xa8,0xb3,0xee,0x9b,0x72,0xe8, + 0x07,0xb9,0x9f,0xe0,0xa7,0xc8,0xfd,0x2d,0x4a,0x16,0xfc,0x2b,0x1f,0xd6,0x38,0xab, + 0xdc,0x9d,0xeb,0x10,0x37,0x31,0x96,0xeb,0x36,0xdc,0xbf,0x7a,0xba,0xbc,0x83,0x3c, + 0xcd,0xc3,0xb3,0x8f,0xd0,0x05,0xfd,0x16,0x3f,0x7f,0x64,0x11,0xab,0x6f,0xc6,0xc2, + 0x53,0x5a,0xad,0xfb,0xad,0xe2,0x62,0x88,0x2d,0xbd,0x53,0x4d,0xc6,0x24,0xf1,0x05, + 0x88,0x12,0x66,0x78,0x0c,0x66,0x79,0x2a,0x9e,0x3e,0x5b,0xa2,0x1f,0x7c,0x43,0x4c, + 0x77,0xf4,0x16,0x67,0xbf,0x14,0xbb,0x04,0x31,0xc2,0x3e,0x42,0x38,0xa4,0xc9,0xfb, + 0x1b,0xfc,0x72,0x92,0xdc,0xf0,0xe8,0x71,0x77,0x8b,0x12,0xaf,0xf0,0x9a,0x5e,0x7d, + 0x4d,0x00,0xba,0xf4,0x7a,0xc1,0x63,0x25,0xbd,0xe0,0x77,0x86,0x7c,0x8e,0xaa,0xe7, + 0x19,0xaf,0x28,0xe8,0xf1,0x70,0x0f,0x86,0x2e,0xe7,0xad,0x02,0x96,0x6f,0x11,0x15, + 0x4b,0xe8,0x7f,0x24,0x60,0xed,0x84,0xd2,0x69,0x1e,0xe1,0x90,0xe2,0x2a,0x31,0xd1, + 0x2f,0x09,0x49,0xfd,0xa0,0x27,0x7b,0xd5,0x4b,0x5a,0x93,0x54,0xe3,0xb1,0xb7,0x58, + 0x37,0xc9,0x47,0xdc,0xf2,0x55,0xc9,0xf8,0xda,0x64,0xf6,0xaf,0xfd,0x4c,0x81,0x3b, + 0x86,0xfc,0x38,0xa6,0x23,0xf8,0xf1,0x75,0x83,0x76,0x58,0xe3,0x49,0x33,0xdd,0xbd, + 0xd9,0x22,0xbc,0xe6,0xb8,0x34,0x77,0xc0,0xe3,0x9f,0xd1,0x1e,0xcf,0x48,0x6b,0x38, + 0xe0,0x84,0xa8,0x14,0xe0,0xf4,0xc1,0x18,0x56,0xc6,0xf8,0x42,0x0d,0xcf,0x20,0xae, + 0xb5,0xc3,0x66,0xb3,0x7f,0x7a,0x1a,0xea,0x7d,0x67,0x62,0x34,0x7f,0xda,0x3b,0xf9, + 0x66,0x90,0x7d,0x17,0x76,0xa9,0x15,0xd2,0xe0,0x66,0x4c,0xc9,0x74,0xaf,0x2b,0x6f, + 0x08,0x9f,0x99,0x86,0xbc,0x10,0x85,0x94,0x74,0x92,0x9d,0x93,0x49,0x06,0x7d,0x01, + 0xa4,0x3a,0x60,0xbd,0x2a,0xbf,0x7e,0x4c,0xf4,0xae,0xe8,0x75,0x3a,0xdc,0x71,0x09, + 0xd5,0xdc,0x8d,0xbf,0x8e,0xae,0x9a,0x0f,0xe3,0xc6,0x5e,0xf2,0x29,0xbd,0x68,0x3e, + 0x6c,0x46,0x1f,0x9b,0xf4,0xad,0x3b,0xf4,0xd5,0xf4,0x4b,0x99,0x54,0xa4,0x0d,0x3a, + 0xf4,0xa4,0xf1,0xc3,0x69,0x74,0x9d,0x7c,0x8a,0x3b,0xe7,0x2d,0xd2,0x46,0xe8,0x9b, + 0x48,0x93,0x4a,0x91,0x08,0xcf,0x98,0xad,0x23,0xa1,0x4d,0x85,0x52,0x84,0x30,0x58, + 0x45,0x1a,0xee,0xb6,0x67,0xd7,0x74,0xc1,0x8f,0xf6,0x09,0xe3,0xe6,0xe5,0x10,0x1f, + 0x82,0x4e,0xdf,0x27,0xdb,0x33,0x7c,0x1c,0xc6,0x46,0xa8,0x60,0x78,0xfe,0x03,0xe9, + 0xa3,0x0a,0xe6,0xc7,0xc9,0x55,0x73,0x2f,0xd9,0xf5,0x9c,0x70,0xc3,0x8f,0xc8,0xcf, + 0xd9,0x27,0x8e,0x1a,0x1f,0xc9,0xfe,0xc2,0x9a,0x79,0xcb,0xfb,0xf6,0x76,0xd9,0x3b, + 0xf4,0x66,0x3a,0xe6,0xfb,0x4f,0x2f,0xca,0xf2,0x5d,0x75,0x79,0x84,0x68,0x6e,0xb9, + 0xda,0xca,0xf6,0xb3,0x54,0xeb,0x19,0xef,0x9a,0xa6,0xaa,0x1c,0x39,0x66,0xe4,0x53, + 0x01,0x5b,0xb1,0x8a,0xe8,0x8e,0x34,0x06,0x12,0xcb,0xaf,0xef,0xb2,0x08,0xda,0xe7, + 0x03,0x3a,0x4b,0x28,0x31,0x05,0x28,0x79,0x86,0xb8,0x86,0x0d,0x38,0x8c,0x89,0xb0, + 0x13,0x14,0x4b,0x3e,0x14,0x7e,0x4d,0x95,0x4a,0xb3,0x3b,0xc8,0x8a,0x94,0x76,0x28, + 0x75,0xa4,0x6a,0x57,0xbf,0xf7,0x96,0xef,0x4c,0x88,0xff,0x50,0x29,0x2c,0x17,0x80, + 0xd1,0xe4,0xd7,0x50,0x0f,0x7e,0x49,0x69,0xa6,0xfe,0x49,0xbc,0xfb,0x7b,0x67,0xdb, + 0xdb,0x67,0x2d,0xe2,0x0d,0x04,0xee,0x15,0x69,0xcd,0x63,0xf7,0x85,0xd6,0x9a,0x82, + 0xc6,0xf6,0xf7,0x19,0x8d,0xc2,0x2c,0x62,0x88,0x09,0x6e,0x4c,0x5c,0xcf,0x0f,0x86, + 0x7c,0x1c,0x41,0x20,0x38,0x75,0x7d,0xcc,0x53,0xc9,0x26,0x29,0x7b,0x7f,0x4e,0x53, + 0x82,0xb6,0x7c,0x94,0xd5,0xcf,0x87,0xfd,0xa6,0xb9,0xf4,0x9b,0x84,0xac,0x48,0x05, + 0x32,0xaa,0xa5,0x00,0xf6,0x62,0xab,0x50,0x53,0x2d,0xbb,0x26,0x88,0xb8,0xa8,0x98, + 0xac,0x52,0xb6,0x17,0x82,0x8c,0x61,0xc7,0x82,0x54,0xed,0xc8,0xe7,0xc3,0xe4,0x5a, + 0xf5,0x40,0x6b,0x46,0x25,0xa5,0xd6,0xeb,0x6f,0xeb,0xca,0xde,0x24,0xbb,0x8f,0x30, + 0xd0,0x65,0xb7,0x82,0x01,0xc3,0xa0,0x5d,0x66,0xcd,0xdd,0x84,0x2c,0xec,0x0c,0xfc, + 0x2e,0x5d,0x67,0x11,0xed,0x97,0xdb,0x48,0x75,0x7c,0xd4,0x1f,0x20,0xfa,0x1f,0x27, + 0xad,0xad,0xc9,0x2c,0x5f,0x69,0xa5,0x43,0xde,0x6e,0x96,0xf4,0x2d,0x6d,0xeb,0x84, + 0x90,0xf0,0xa7,0x8d,0x46,0x65,0xb6,0x39,0xd4,0x9b,0xe6,0xa7,0xd0,0xc1,0xdc,0x1d, + 0xae,0xe7,0xfc,0xd3,0xb6,0xe1,0x10,0x11,0x9e,0xb3,0xeb,0xbf,0xe9,0xe4,0xb2,0xf8, + 0xe4,0x52,0xd0,0xab,0x61,0xe5,0x33,0x96,0x40,0x54,0xa8,0x02,0x47,0x6c,0xf6,0xc1, + 0x12,0x3b,0xa7,0xbc,0x77,0xa7,0xa9,0x31,0xc0,0xfe,0xad,0xb3,0xfb,0xed,0xec,0x3a, + 0xac,0x4a,0x1d,0xc5,0x6c,0x38,0xf1,0x2f,0x85,0x77,0xd9,0xd4,0xd1,0x7e,0x71,0xcf, + 0xec,0x16,0x29,0xa1,0x97,0x67,0xf8,0x49,0x77,0xc3,0x8e,0x4d,0x0c,0x13,0xfe,0x42, + 0xef,0xba,0x68,0x3f,0x2f,0x22,0x48,0xc6,0xa2,0x1e,0x98,0xa4,0x78,0x7e,0xda,0x7c, + 0xf4,0xa8,0xf7,0xb0,0x23,0x8f,0x8f,0xbf,0xe9,0x3d,0x30,0x8f,0xdf,0x7c,0xdb,0xdb, + 0xeb,0xec,0x76,0x51,0x70,0x5a,0x77,0x5b,0xf4,0x21,0x2b,0x25,0xa7,0xb8,0x57,0x09, + 0x44,0xf5,0x4b,0x8d,0xff,0xb7,0xce,0x70,0x82,0x45,0xa6,0x79,0x42,0x7b,0xaa,0x0f, + 0x5d,0x96,0x18,0x3a,0x0f,0x66,0xd7,0xdd,0x71,0x3f,0x87,0x75,0x7f,0xce,0xe2,0xe5, + 0x2e,0x25,0x9c,0x90,0xb6,0x9b,0x0e,0xe8,0xa0,0xcd,0xb9,0x2c,0x38,0x45,0xe4,0x89, + 0x0e,0x6d,0xfd,0x1f,0x34,0x86,0x5f,0x3f,0x20,0xf9,0x0a,0xc5,0x68,0xdf,0x72,0xce, + 0x2b,0x25,0x32,0xa8,0x79,0x3a,0x39,0x82,0x4c,0xca,0x2b,0x2e,0xc9,0x97,0xe6,0x05, + 0x6d,0xc6,0x21,0x0b,0x69,0x2a,0x94,0xa9,0x44,0xb8,0x11,0xcd,0xb3,0x51,0x76,0xdd, + 0xe5,0xfe,0x69,0x0e,0x69,0x1d,0x2b,0x3a,0x48,0x68,0xd2,0x16,0x5b,0xb1,0xd9,0x7d, + 0x84,0x6e,0xa2,0x8b,0x9a,0x8d,0xd0,0x00,0x0e,0x1d,0xc2,0x96,0x7d,0x73,0x99,0x8f, + 0x84,0xf0,0xbe,0xbf,0x57,0x3b,0xca,0x54,0x9e,0xc1,0x9e,0x1f,0xe5,0xeb,0x6d,0xda, + 0x36,0x56,0xf5,0x0c,0xda,0x90,0x3f,0x11,0x5d,0x40,0x65,0xa8,0xd7,0x33,0xa5,0x12, + 0xd7,0xd5,0xc1,0x02,0xde,0xe4,0x1e,0x1d,0xc9,0x4d,0x3a,0x08,0xe4,0x79,0xcb,0x9c, + 0xb4,0xaa,0x21,0x18,0x8b,0xf3,0x16,0xec,0x44,0x75,0x3b,0xc1,0x84,0x8d,0x66,0x21, + 0x45,0xa0,0x66,0xcd,0x1d,0x0c,0x2d,0x78,0xc2,0xfb,0xe4,0x66,0x9f,0x7f,0xca,0xf3, + 0x8a,0x2c,0x9b,0xc0,0x70,0x83,0x5b,0xc5,0x9f,0xba,0x96,0xe8,0xeb,0x51,0xee,0x48, + 0x9a,0x3a,0xae,0xba,0xcf,0x75,0x73,0xd2,0xdd,0x8a,0x29,0x50,0xfc,0x39,0x13,0x9c, + 0xa1,0x6d,0x9e,0xe1,0xc0,0x4f,0xf7,0x60,0x78,0xae,0xee,0xc2,0x26,0xd6,0x5f,0xc7, + 0x46,0xf7,0x11,0x93,0x4c,0x2f,0x22,0x03,0x67,0xbd,0x0d,0x2d,0x5f,0x80,0x81,0x2c, + 0x79,0xc6,0xa4,0xd8,0x66,0x9b,0x04,0x58,0xae,0x9a,0x3d,0x09,0xcf,0xee,0x09,0x93, + 0x33,0xf6,0x1d,0x4d,0x14,0x05,0x4a,0x38,0x80,0xed,0x30,0x6e,0x50,0x12,0xd9,0x5f, + 0xf6,0xc2,0xed,0x3f,0xed,0xee,0x7d,0xbb,0xf7,0xcd,0xc3,0x2e,0xbc,0x1a,0xa2,0x40, + 0x31,0x26,0x95,0xc8,0xd3,0x53,0xe8,0xf6,0xfc,0x36,0x7b,0x28,0x10,0x6c,0x8f,0x69, + 0x41,0x99,0xce,0xbb,0x54,0x40,0xda,0x05,0x54,0xa9,0x55,0xfa,0xbc,0x08,0xab,0xdb, + 0x9f,0xfb,0x4f,0x66,0x3a,0x05,0xfd,0x8d,0xa5,0x65,0x89,0x7b,0x98,0x6b,0xb4,0x4f, + 0xd2,0x31,0x17,0x9c,0x61,0xe2,0xd3,0x95,0xee,0x19,0xa6,0x73,0xcd,0x2e,0xe9,0xf6, + 0x19,0xf3,0x2f,0xed,0xf8,0xbb,0x7f,0x04,0x26,0x9a,0x31,0xbc,0x13,0xf4,0x7d,0xcd, + 0xfd,0x06,0x07,0x8c,0xe6,0x1a,0x23,0x0b,0x5c,0xe8,0xb2,0x85,0x9a,0x6f,0xbf,0x18, + 0xa4,0x35,0xe2,0x0f,0x9e,0xa0,0xfa,0xe0,0xe8,0xf2,0x9d,0x5a,0x59,0x06,0x8f,0xb6, + 0x08,0xf1,0x74,0x85,0x98,0x32,0xd4,0xf5,0xd2,0x34,0x67,0x9b,0x13,0x3a,0x7a,0x76, + 0xf9,0x10,0xd0,0xdb,0x10,0xe7,0x4c,0xba,0x66,0xad,0x9b,0x4a,0x6a,0x93,0xe0,0x59, + 0x2f,0xfb,0xc4,0xc2,0xee,0xe0,0xb9,0xda,0x56,0xd1,0x40,0x68,0x95,0x98,0x53,0x7c, + 0x70,0x91,0xc2,0x74,0x87,0x9f,0x4a,0x1f,0x9c,0xe4,0xcf,0xfa,0x84,0x0c,0x98,0x8a, + 0x8e,0x72,0x03,0xb7,0x7c,0x9d,0x9b,0x3c,0x95,0xcc,0xd1,0x1e,0x16,0x0c,0x8c,0x3a, + 0x01,0xe9,0xd6,0x44,0x87,0x56,0x0d,0x01,0x4a,0xfc,0xee,0x39,0x01,0xdd,0xb4,0xc4, + 0xe6,0xd8,0x6a,0x95,0xaf,0xd3,0x1e,0xe2,0x41,0x72,0xe7,0xaf,0xd2,0xd2,0x9f,0xfb, + 0x4d,0x5a,0x4f,0xbe,0xc8,0x1f,0xfe,0x5f,0x7c,0x22,0x84,0x15,0xc4,0x3f,0x0f,0xba, + 0x6d,0x77,0x53,0xd9,0x12,0xc5,0x52,0x5c,0x0d,0xd6,0xec,0x09,0x8d,0xc4,0x79,0xdd, + 0x5a,0x3b,0x95,0x3c,0x38,0x89,0x42,0x88,0x9d,0x53,0x5b,0x4d,0x43,0x92,0x47,0x97, + 0x5b,0x49,0x6e,0x10,0x53,0x16,0x6d,0x62,0x70,0x58,0xf4,0x4c,0x86,0xcc,0x1f,0xe0, + 0x42,0xa7,0x82,0xc5,0xf6,0x83,0xbd,0x6f,0x1e,0x7f,0x4b,0x67,0xe3,0x92,0x8b,0x18, + 0x59,0xfa,0x8c,0x28,0x59,0x0f,0xb6,0xb7,0x9d,0xa3,0x18,0x85,0x40,0x53,0x44,0x1f, + 0x3d,0x77,0xaa,0xde,0xcd,0x93,0xfa,0xbb,0xad,0x90,0x4a,0x4e,0x2f,0x3c,0xa7,0xe3, + 0x8a,0x1c,0x65,0x7c,0xee,0x77,0x1b,0x66,0x66,0xf7,0x2b,0x8e,0xaf,0x94,0x8a,0x4f, + 0xcf,0xf4,0x68,0x6b,0x31,0xef,0x84,0xbf,0x1e,0xec,0xef,0x3c,0xeb,0x4f,0xfa,0x83, + 0x7e,0x10,0xc1,0x96,0x6b,0x4c,0x1d,0xcd,0xea,0xc1,0xe4,0xac,0x13,0x7e,0xb7,0xdb, + 0x6e,0x3d,0xda,0x7b,0x14,0xe2,0xa4,0x3d,0x7c,0xbc,0xd7,0xa2,0xa7,0x82,0x92,0xbf, + 0x09,0x71,0xe0,0x1e,0x3e,0x0a,0x6f,0x12,0x86,0xb1,0x7f,0x59,0xcc,0x73,0x92,0xd4, + 0xfa,0xa6,0xd2,0xa3,0xd6,0xb7,0xed,0xb6,0x54,0xda,0x7b,0xd4,0x96,0x3a,0xbb,0xed, + 0x75,0x95,0x82,0xe8,0x55,0x3f,0xcf,0xa7,0x57,0xda,0xe4,0xe3,0xd6,0xa3,0x6f,0xd6, + 0x35,0xf9,0x6d,0x4d,0xed,0x5f,0x88,0x0f,0x97,0x0d,0xb7,0xb5,0xea,0x2e,0xd0,0x2e, + 0x90,0xba,0xae,0xdd,0x4e,0x70,0xb0,0x9f,0x04,0xbf,0xed,0x4b,0xdd,0xbd,0x07,0xad, + 0xdd,0xd5,0x2f,0xfd,0xb6,0xbe,0x59,0x54,0xfe,0xaf,0x97,0x3f,0x6c,0xac,0xe9,0x35, + 0xfb,0x7d,0xde,0xff,0xe7,0x70,0xf4,0x39,0x6d,0x3d,0xff,0x75,0xe7,0xd7,0x9f,0xab, + 0xc4,0xf9,0xf6,0xf1,0x77,0xad,0xc7,0xbb,0xdf,0xde,0xb1,0xe6,0x0f,0xd9,0x0c,0x61, + 0x7e,0x30,0xab,0xb4,0x36,0x7a,0xd3,0xef,0x98,0x5d,0x0f,0xd3,0x67,0xff,0xcc,0x48, + 0xbe,0x78,0x9b,0xcd,0x2e,0x4f,0x88,0x99,0xac,0x22,0xf0,0xf0,0xc1,0xde,0xe6,0x01, + 0x01,0x04,0x82,0x87,0x0f,0x1e,0xfc,0xf2,0xd3,0x3f,0x29,0x36,0xc9,0x94,0x94,0xce, + 0x6f,0x61,0x7c,0x27,0x10,0x28,0xbd,0xf5,0x18,0x6d,0x6f,0x44,0xc2,0x42,0xd0,0xf6, + 0xbd,0xda,0x9b,0x09,0xf0,0x2a,0xc3,0xf5,0xb5,0x11,0x6d,0x74,0x8b,0x4d,0x74,0xf3, + 0xd1,0x7e,0x45,0xb3,0xeb,0xbf,0x65,0x7d,0xd4,0x33,0x03,0xea,0x9b,0xd6,0x83,0x6f, + 0x36,0x12,0xcc,0xab,0x66,0xb1,0xf5,0xea,0x6f,0x6a,0x16,0xde,0x55,0x2e,0xcf,0xfb, + 0x23,0x7c,0xb1,0x7e,0x65,0x4d,0x3d,0x1d,0xc9,0x8f,0x57,0xea,0x7d,0xfb,0xf8,0xdb, + 0x8d,0x9f,0xe9,0xd5,0x3b,0x20,0xe3,0xb1,0x7f,0x0a,0x79,0x3e,0x67,0x54,0xfd,0x65, + 0x98,0xcd,0x49,0x2f,0xef,0x7d,0xe2,0x5e,0xbb,0x05,0xca,0x6c,0x1e,0xfd,0x5a,0xd7, + 0x1f,0x93,0x5e,0xfd,0x3a,0x12,0x6f,0x1d,0x3b,0x27,0xe9,0x55,0x2f,0xc3,0x0b,0x1b, + 0x23,0x6a,0x43,0x80,0x28,0x57,0xb0,0x13,0x8b,0x27,0xd9,0xf2,0xc0,0xb6,0x6e,0x42, + 0x2b,0x5c,0x8e,0x28,0x2d,0x72,0xf3,0xbb,0x13,0xc8,0x27,0xa4,0x29,0x7e,0x81,0x4c, + 0x00,0x9c,0xf0,0x4e,0x3f,0xad,0x76,0xc8,0xc2,0x56,0x9f,0xa2,0xe3,0x9c,0x54,0x37, + 0x38,0x46,0xfb,0xdb,0x77,0x6c,0x9a,0x48,0xe1,0x7b,0xe2,0xbc,0xfa,0xce,0x1b,0x1f, + 0xaa,0xef,0x46,0xb3,0x32,0x5d,0x1f,0x0d,0x8f,0xe1,0x67,0xcc,0xbc,0x7e,0xc2,0xab, + 0xd7,0x86,0x67,0xfd,0xef,0x11,0xe5,0x07,0x6c,0x07,0x3c,0x9a,0x04,0x98,0x3f,0xe5, + 0x86,0xe0,0xfb,0xdf,0x94,0x44,0x36,0xed,0xe0,0x47,0xa5,0x96,0x4d,0x7b,0xf6,0x76, + 0x85,0x70,0x57,0xff,0x64,0x8b,0xa8,0x1f,0x87,0xec,0x7f,0x56,0x97,0x7c,0xd7,0xf9, + 0x74,0x42,0x26,0x49,0x55,0xd7,0xd5,0xd8,0x05,0x39,0xbe,0xad,0x7c,0xe7,0x50,0x24, + 0x87,0x67,0x23,0x35,0x4f,0x87,0xf5,0x32,0xe5,0x6d,0x5f,0x64,0xa3,0xd1,0x70,0xd6, + 0x75,0xfd,0x44,0x01,0x00,0x7b,0x04,0x61,0xef,0xa0,0x77,0xf1,0x4a,0xbd,0xb5,0xd6, + 0x2d,0x35,0x90,0x8c,0x63,0x81,0x36,0xb4,0x2e,0xa8,0x7c,0xcf,0x57,0x43,0xd7,0xdf, + 0xd5,0x9c,0x76,0x72,0x44,0x9b,0x41,0xbf,0xb8,0xe8,0xc2,0x15,0xa3,0x4b,0x6c,0xd7, + 0x0d,0x96,0xac,0xb2,0xb5,0x20,0xc5,0xa9,0xf5,0xd3,0x9f,0xe9,0x6f,0x40,0x18,0x40, + 0x97,0x5b,0x1a,0x50,0xbb,0x00,0x88,0xa4,0xbe,0x4b,0x21,0x7c,0x0b,0xe3,0x4b,0xde, + 0xb3,0xe3,0xc2,0x0b,0x4e,0x22,0x39,0xa5,0xaf,0x89,0x48,0xcc,0x39,0xb7,0xb7,0xf9, + 0x57,0x1d,0x88,0x2f,0x97,0xb8,0x73,0x51,0xf6,0x54,0x93,0x10,0xa8,0xec,0x9b,0xc2, + 0x67,0x82,0xd1,0xe8,0x53,0x27,0xa0,0xa3,0x36,0xd9,0x56,0x9e,0xb2,0x3d,0x62,0x5c, + 0x37,0x82,0x24,0xfb,0xe4,0x2a,0xf6,0x87,0x91,0x64,0x14,0x67,0xb1,0x3f,0x96,0x24, + 0xe3,0x34,0xe7,0xfd,0x2d,0xb5,0xb0,0xd5,0x10,0xc4,0x9f,0xd0,0xd9,0x64,0x40,0x47, + 0x39,0x59,0x31,0xb9,0x3f,0x97,0x3e,0x0e,0xfa,0x66,0x24,0xf4,0x47,0x66,0x58,0x43, + 0x8d,0xc4,0xd6,0x8e,0x9b,0xe3,0xcc,0xac,0x8e,0x55,0x1a,0x5d,0xc6,0xff,0x5a,0x4d, + 0x6c,0x1e,0xe3,0xbb,0xbd,0x24,0x68,0xc2,0xe3,0x85,0xa9,0xfd,0xd1,0xf8,0xc2,0xc5, + 0xaf,0x74,0x5c,0xbc,0xe0,0xdc,0xea,0xe8,0x36,0x76,0xa6,0x12,0xf0,0xae,0x32,0x2a, + 0x8f,0x1a,0x1f,0x8f,0xbb,0x52,0xa3,0x3a,0xfa,0x6e,0xee,0x6c,0xe5,0xa8,0xde,0x59, + 0x18,0x8a,0xcb,0x53,0xfe,0x90,0xf1,0xe3,0xcc,0xda,0x3d,0x6e,0x6d,0x32,0x7c,0xe4, + 0xd6,0x7c,0x07,0xf4,0x46,0x7a,0x2c,0xfe,0x48,0x45,0xdf,0x6f,0xbd,0x29,0xb9,0x7a, + 0x46,0xf3,0x9b,0x3d,0x7c,0x81,0x51,0xba,0xee,0x4f,0xfd,0x43,0x19,0xbb,0xc7,0x5d, + 0x7f,0x60,0x53,0x1e,0xf9,0x94,0x9b,0xf0,0x6a,0x73,0x30,0x4f,0x94,0xe6,0xd6,0x5b, + 0x3f,0x0a,0xe8,0x2f,0x35,0x80,0x54,0x30,0x9b,0x6d,0x20,0x7d,0xbf,0xdd,0x5f,0x6c, + 0xb7,0x78,0x4f,0x41,0x29,0xad,0x2a,0xbc,0xbb,0x5b,0x47,0xee,0x5a,0xed,0x0d,0x68, + 0xa3,0xdc,0xca,0x8b,0x8d,0x05,0x5c,0xfc,0xe0,0x5b,0xdd,0x2f,0x46,0xdc,0xb4,0x15, + 0xd7,0x63,0xe8,0xcf,0xf1,0x3f,0x4f,0xa1,0xcc,0xe3,0x0f,0xb6,0x06,0x1b,0x14,0x62, + 0x17,0xb1,0x6f,0xe3,0x09,0x29,0xc2,0xc9,0x57,0x77,0xb2,0x97,0x3c,0x48,0x1e,0xd6, + 0x58,0x1c,0x62,0x91,0x10,0x8e,0x18,0x36,0x86,0xeb,0x4d,0x0e,0x87,0x34,0xa6,0x27, + 0xaa,0x74,0x9a,0xcf,0xb4,0x6c,0x8d,0x0d,0xe4,0xf0,0x09,0x0a,0xaa,0xcd,0x38,0x23, + 0x41,0x4d,0xd4,0x44,0x00,0x13,0xcd,0x3d,0x6d,0x12,0xa9,0xed,0x07,0x41,0xc5,0x27, + 0x5b,0x4b,0x0c,0xfc,0x1d,0x77,0x6c,0xe3,0xd2,0xc9,0x0c,0xdb,0x43,0x2c,0x97,0x3a, + 0xc1,0xe4,0xcd,0x5c,0x66,0x9f,0x92,0x29,0xb7,0x89,0x5b,0x41,0xdf,0x3f,0x8e,0x17, + 0xe6,0x25,0x9d,0x8c,0xbb,0xd3,0xcf,0xdd,0x3e,0xc2,0xf0,0x5d,0x3f,0xe1,0x61,0xcc, + 0xae,0x2c,0xdf,0x66,0xf0,0x90,0x82,0x6d,0xa4,0x31,0x4c,0x28,0x4e,0xf3,0x29,0x1d, + 0x1b,0x4f,0x61,0x1f,0xe0,0x77,0x0b,0x79,0x30,0xe4,0xd1,0x16,0xad,0xe1,0xbb,0xdc, + 0x71,0x0f,0xfc,0x5a,0x07,0x5a,0x2c,0xb2,0x5d,0x9a,0xe3,0x5d,0xbd,0xf5,0xe9,0x60, + 0xae,0xc2,0x94,0x19,0xbf,0xc6,0x26,0xdd,0x4f,0x9e,0x5f,0xff,0xdb,0xad,0xcc,0x5d, + 0xfe,0xe7,0xb2,0x6d,0xe1,0xbd,0xb7,0x2c,0x60,0xb1,0xb3,0x48,0x13,0x6a,0xae,0xe4, + 0x50,0xc9,0xd9,0x00,0xa4,0xaa,0x7d,0x98,0x4b,0xe4,0xdf,0xfa,0x6f,0x74,0x6f,0x55, + 0x00,0x67,0x22,0x0f,0x6b,0xad,0x6f,0xc7,0xd2,0xb7,0x38,0x97,0x3e,0x75,0x6d,0xc4, + 0x1e,0x74,0x1e,0xd6,0x0c,0x0b,0x64,0x45,0xb5,0x93,0x42,0x00,0x3c,0xac,0x1b,0x14, + 0x75,0x95,0xd0,0xeb,0xf5,0xde,0xa5,0x6a,0x3e,0x56,0x3c,0xaf,0xab,0x33,0xb9,0x5e, + 0xe7,0x5d,0x6b,0xc9,0x1e,0xe5,0xde,0xb5,0x62,0xf1,0x15,0x45,0x25,0xe2,0x9a,0xcb, + 0x22,0xf8,0x52,0x97,0x9c,0xeb,0x29,0xb9,0x19,0x7a,0x25,0xc4,0x48,0x0d,0xdd,0xab, + 0x51,0x46,0xee,0xd4,0x05,0x77,0xb8,0x94,0xb0,0x75,0xa7,0x5b,0x09,0x5b,0x1b,0xaf, + 0x25,0x68,0xa1,0xfa,0x8b,0x09,0xfe,0x28,0xa8,0xef,0xc4,0xd9,0x74,0xf6,0xfa,0x72, + 0x5e,0xb5,0xa5,0x85,0x87,0xc4,0xfe,0x68,0x27,0xbb,0x1e,0x82,0xfb,0x8c,0x69,0xa3, + 0x3e,0x1d,0xd0,0x56,0xf6,0xf5,0xc1,0x61,0xb8,0xd6,0x95,0xc4,0xf6,0x76,0xde,0xc2, + 0xa9,0x1c,0xd0,0x43,0xc5,0x26,0xbd,0xf8,0xf1,0x42,0x51,0x80,0xba,0x4c,0x4b,0x4c, + 0x3f,0xfa,0xc7,0xf2,0x26,0x3e,0x47,0xfd,0x15,0x09,0x75,0x00,0xf2,0x6c,0x7a,0x39, + 0x1a,0x40,0x1c,0xcd,0x33,0xea,0x6a,0x7b,0x73,0xb1,0x89,0x0b,0x94,0x72,0x25,0x35, + 0x8c,0x7d,0x43,0xff,0x33,0x0a,0xbd,0x55,0x6e,0xbc,0xbc,0x6b,0x4d,0x3d,0x67,0x54, + 0x75,0x22,0xed,0x75,0xd3,0xd5,0x0e,0x90,0xaa,0xeb,0x97,0xb3,0xe1,0x64,0x58,0xc0, + 0x5c,0xcf,0xf2,0x43,0xbd,0x85,0x64,0x23,0xf3,0x49,0x83,0xe5,0x89,0x41,0x0a,0x3c, + 0x42,0x2d,0x86,0x1d,0x59,0x5a,0x8d,0x88,0xa4,0x59,0x4e,0xd0,0x34,0x00,0xd7,0xb6, + 0x78,0xe3,0x20,0xce,0x37,0x6d,0x44,0x9a,0x7b,0x33,0x6d,0xe6,0x80,0x1d,0x95,0x7b, + 0x17,0xe1,0x65,0x05,0x8a,0xc8,0x7c,0xf3,0x34,0xa6,0x53,0x03,0x5a,0x2f,0x4f,0xb5, + 0xfc,0x7e,0xa5,0x60,0x11,0x0c,0xa6,0x44,0x49,0x23,0xe6,0x4b,0xb5,0x99,0x6a,0xa6, + 0x3f,0xd1,0x54,0x81,0x0d,0x00,0x91,0x78,0x21,0x2f,0x35,0xbe,0x47,0x66,0xb1,0xf5, + 0xc7,0xf0,0x1f,0x88,0x0f,0xb1,0xdf,0xfc,0xf1,0x78,0xb1,0x77,0xb3,0x73,0x9e,0x84, + 0xd7,0xa1,0xba,0x17,0xbb,0x91,0x8e,0xcd,0xe2,0x45,0x2d,0x1a,0xc1,0x98,0xf4,0x77, + 0xc1,0x49,0x86,0x8d,0xd9,0x70,0x10,0xfc,0x7a,0xf8,0x63,0x93,0xd4,0x1b,0x40,0x86, + 0xdb,0xa5,0xf8,0x0f,0xcb,0xe5,0xce,0xd1,0xbb,0xfc,0xdd,0xe4,0x98,0x27,0x30,0x9a, + 0x8d,0x37,0x43,0xda,0x6d,0xee,0x3e,0x12,0x40,0xf8,0x10,0x0d,0x2c,0x3b,0x99,0x06, + 0x38,0xc3,0x0e,0x4e,0x68,0x1c,0x7d,0x28,0xd8,0x90,0xd0,0x76,0x97,0xd3,0xed,0x95, + 0x15,0x56,0xc8,0x41,0xaa,0x95,0x82,0xa2,0x3d,0x24,0x83,0x72,0xf5,0xb7,0x0a,0x10, + 0x64,0x46,0x23,0x58,0x1a,0xa2,0x94,0x18,0x1b,0xd6,0x58,0x55,0x22,0x18,0x43,0x23, + 0x64,0xe3,0x49,0xdd,0xd1,0x7d,0x8c,0x91,0xa0,0x16,0x90,0x18,0x7a,0x00,0xc5,0x46, + 0xba,0x7a,0xa4,0x17,0x26,0x83,0xca,0x31,0x51,0x29,0x6f,0x78,0xa9,0x61,0x84,0x8e, + 0xe4,0xbd,0x99,0x75,0x5f,0xa4,0xb7,0xe6,0x85,0x2f,0xdb,0x58,0xd1,0x58,0x15,0x5e, + 0x5f,0x4d,0xd4,0x26,0x4f,0x42,0x46,0x0f,0x12,0x27,0x62,0x52,0xd7,0xc1,0xc4,0x7a, + 0x35,0xb6,0x20,0x7b,0x91,0xa2,0x85,0xe2,0xc7,0xbd,0xf0,0x6b,0xfe,0x17,0x76,0xc2, + 0x08,0xa2,0xa2,0x62,0x4f,0xc8,0xd8,0xf9,0x55,0x29,0x1f,0x95,0x57,0xb7,0xe3,0x9a, + 0x4a,0x2c,0xb2,0x79,0x07,0x00,0x8c,0x10,0x05,0xac,0x69,0xbe,0x7a,0xfd,0x5b,0xb0, + 0x23,0x37,0x9e,0x55,0x8b,0x9f,0x84,0xcf,0xe4,0x09,0x27,0xb0,0x98,0x71,0x9e,0x96, + 0x3f,0x6e,0x10,0xbe,0x5e,0x22,0xb0,0x08,0x8c,0x3f,0xa7,0x40,0x9d,0x74,0x00,0x19, + 0x6d,0x7e,0x50,0x23,0xe0,0x09,0x16,0x30,0xfa,0x0a,0xc4,0x27,0x74,0x6d,0x21,0x73, + 0xc8,0x46,0x9e,0x26,0x55,0xeb,0xb2,0xa2,0x84,0x49,0xf2,0x99,0x48,0xd9,0xb7,0x6a, + 0x4f,0x36,0x45,0xf4,0xca,0x4f,0xe3,0x98,0x00,0xcd,0x6e,0xb4,0xc3,0xde,0xca,0x96, + 0xce,0x95,0xc8,0x7a,0x21,0x16,0xed,0x59,0x36,0x08,0x2a,0x34,0x8f,0xf2,0x59,0x2f, + 0x9f,0xb5,0x60,0x7c,0xde,0x0c,0xe4,0x20,0x3b,0x3f,0xb5,0xf2,0x91,0x9e,0x44,0x13, + 0xa5,0x99,0x7a,0x82,0xb9,0x98,0x15,0x3b,0x70,0x2c,0xad,0xe6,0xd7,0xa0,0x0d,0xec, + 0xd5,0xe5,0xee,0x7b,0x98,0x20,0x8d,0xa0,0xc3,0xb4,0x5c,0x0a,0xd5,0x30,0x4c,0xf8, + 0x71,0xf0,0x19,0xdc,0x72,0xe9,0x31,0xcd,0x98,0x21,0x7b,0x73,0x3d,0x4c,0xbc,0x52, + 0xbd,0x10,0x7e,0x93,0x3b,0xce,0x44,0xd0,0x56,0xed,0x4e,0xc4,0x11,0x59,0xe2,0x05, + 0x28,0x26,0x66,0xf3,0x61,0x52,0x4b,0x23,0xd7,0x01,0xad,0x42,0xb1,0x15,0x5f,0x9f, + 0x88,0x75,0xb2,0x0e,0x84,0xa3,0xea,0x86,0xc1,0x4e,0x54,0x3f,0xbd,0x82,0xa1,0xc0, + 0x7a,0x81,0x08,0x4a,0x49,0xa4,0x30,0xe0,0x62,0xdb,0x83,0xa0,0xa9,0x5e,0x7d,0xda, + 0xf0,0xfc,0x3a,0x9b,0x69,0xd8,0x1c,0x33,0xf0,0x28,0xa4,0x5c,0xaa,0xa0,0xe8,0x39, + 0xcb,0x3d,0x58,0x36,0x99,0x09,0x44,0xcf,0xb1,0x7c,0x11,0x12,0x11,0xbb,0x3a,0x4c, + 0x28,0x4d,0x0d,0xa5,0x77,0xf7,0x7a,0x78,0x2b,0xe8,0xd8,0x21,0xa3,0xdd,0xc5,0xee, + 0x1e,0x31,0x2d,0x5c,0x91,0xe9,0xa0,0x9e,0x34,0x98,0x8d,0xcb,0xf6,0xb2,0x31,0x9d, + 0xe1,0xfb,0xed,0x69,0xb2,0xb4,0x97,0x8d,0xdd,0xe6,0x24,0x27,0xa1,0xc4,0x3b,0xb9, + 0xd9,0x9f,0x69,0x4b,0x12,0x5b,0x40,0xe6,0x83,0xdf,0x9e,0x97,0x29,0x0b,0x1b,0x96, + 0x42,0xf5,0x39,0x2a,0x08,0xb0,0x99,0x3b,0x15,0x4d,0x66,0x4e,0x4c,0x3b,0xf6,0x08, + 0x5a,0x89,0x55,0x36,0x58,0xb1,0xe2,0xb1,0x92,0xc5,0xbd,0x9d,0xbf,0x47,0x60,0x6b, + 0x24,0x64,0x0a,0x77,0x79,0xa7,0xec,0xe5,0xab,0xa5,0x0e,0xcd,0xaf,0x96,0x18,0x21, + 0x5f,0x2d,0x79,0x06,0x7d,0xb5,0x9c,0x5f,0x7f,0xb5,0x04,0x8e,0xef,0xcc,0x90,0x30, + 0x2f,0xe8,0x5d,0x4d,0x07,0x61,0xe4,0x59,0x08,0xc7,0xcf,0x2b,0x22,0xf2,0x8d,0xae, + 0xaf,0x42,0x55,0xe0,0x6d,0x08,0xeb,0xb8,0x09,0x2c,0xc2,0x84,0x73,0x2a,0x1e,0x65, + 0x42,0x67,0x5f,0xc3,0xcb,0x5c,0x45,0xf9,0x88,0x55,0xcc,0xcc,0x7e,0x4f,0x4f,0x23, + 0xca,0x13,0xc8,0x97,0xba,0x27,0xd4,0xd5,0xb0,0xb2,0x1a,0x91,0x84,0x52,0x6f,0xe1, + 0x60,0xda,0xcc,0xf2,0xdc,0xbf,0x49,0xf5,0x06,0x61,0xdd,0x33,0xa0,0x18,0xf4,0x03, + 0x77,0xfd,0x0b,0x68,0xe6,0x65,0xb3,0x60,0x37,0xb6,0x77,0xb2,0xb4,0xe1,0x92,0xc3, + 0x6d,0x6f,0x7b,0x9b,0x34,0x35,0x91,0xb8,0xb5,0x41,0x22,0xd2,0x74,0x4a,0x3f,0x7d, + 0xb9,0x29,0x6d,0xd4,0x9b,0xa6,0xcd,0xbd,0x38,0x68,0xb2,0xa0,0x59,0x04,0x24,0x8a, + 0xcd,0x54,0x86,0x98,0x34,0x7f,0x3d,0x50,0x4f,0xfb,0x85,0xc5,0x6a,0xbd,0xcb,0x40, + 0xec,0x8d,0x5c,0x4f,0x81,0x1b,0xd0,0x92,0x02,0x8d,0xb0,0xc4,0xc0,0xc2,0xf7,0x59, + 0x99,0x52,0xc0,0xbc,0x51,0x78,0xae,0xfd,0xe6,0x7f,0xeb,0x37,0xff,0x79,0xbc,0x78, + 0x70,0xa3,0x2e,0x77,0xb5,0x77,0xee,0xc6,0x56,0x42,0xec,0x85,0x6e,0xa5,0x18,0x1b, + 0x65,0x12,0xc1,0x1e,0x34,0x69,0x7f,0x86,0x47,0xf0,0x2e,0xa3,0x20,0x0e,0x20,0x20, + 0x06,0x11,0xdf,0x44,0xc2,0x07,0xb8,0xe8,0xaf,0x05,0xac,0xb2,0xf2,0x89,0x9e,0x5c, + 0x88,0x9f,0xd9,0xe4,0x84,0x9d,0x27,0xa7,0x27,0x6e,0xe1,0xee,0x89,0xef,0x82,0xb5, + 0x92,0x9d,0x6e,0x76,0x2c,0xd9,0x83,0x4f,0x0f,0x5c,0xb7,0x31,0xb9,0xcc,0xc5,0xc2, + 0x43,0xa2,0x14,0x12,0x31,0xea,0x90,0xd2,0xad,0xf8,0x60,0x5c,0x88,0x80,0x20,0x9a, + 0x98,0xc4,0x6e,0x82,0x8c,0xb3,0xc0,0x05,0x21,0xe0,0xb9,0x8a,0xab,0x62,0x24,0x5f, + 0x61,0xfc,0x87,0xc8,0xa4,0xd1,0x9a,0x8e,0xf3,0x21,0xeb,0xe5,0x85,0x8c,0x34,0xb3, + 0xd9,0x5c,0x5d,0x0e,0xa9,0xd3,0x0e,0xc4,0x43,0x20,0xe9,0x0d,0xe1,0x2b,0xe8,0x5d, + 0xbc,0x6f,0xa1,0x40,0xc5,0x0b,0x21,0xfb,0x47,0x2b,0x7d,0x11,0x92,0xcb,0x9c,0x33, + 0x89,0x40,0xa4,0x60,0x78,0xe9,0x84,0xef,0x2e,0xb8,0x06,0x21,0x7d,0x51,0x96,0x89, + 0xe6,0xb5,0x08,0xde,0x85,0xa2,0x08,0x15,0xef,0x1f,0xf7,0xde,0x85,0x70,0x13,0xe3, + 0x38,0x2e,0xe2,0xa1,0x4f,0x94,0x7c,0xd0,0x0e,0x0a,0xf1,0xa6,0x02,0xe8,0x28,0x00, + 0x7f,0x47,0x05,0x13,0x19,0x77,0xe0,0xd9,0xcb,0x4d,0x52,0xf5,0xc3,0x88,0xc6,0x24, + 0x13,0x04,0x66,0xc0,0x12,0x3b,0x4c,0xbe,0x40,0x1d,0x56,0x89,0xab,0x2a,0xeb,0x6d, + 0xa6,0xea,0x73,0x31,0x68,0x1a,0x77,0x8a,0xe5,0xe6,0x0f,0x9c,0xa9,0xe2,0xc0,0x4a, + 0x95,0x51,0x1b,0x46,0xda,0xba,0x8d,0xa4,0x3a,0x37,0xa6,0xd0,0x4d,0x70,0xce,0x28, + 0xe1,0xa1,0xe4,0xa6,0x4f,0x40,0x4f,0xc5,0x1c,0x97,0x9b,0xa6,0x13,0xef,0x53,0xc4, + 0x3b,0x93,0xb8,0x6e,0x6c,0x85,0x2e,0x02,0xd6,0x57,0xa0,0xef,0x16,0xd0,0x5f,0x47, + 0xae,0xed,0x3a,0xe2,0xf8,0x04,0xbc,0x16,0x57,0x77,0x7a,0x9b,0x9a,0x41,0x19,0x56, + 0xbf,0xea,0x8c,0x6e,0xd3,0x9c,0x75,0x6b,0xf6,0xf0,0xa2,0x96,0x97,0x7e,0xf3,0xc1, + 0x35,0xfb,0xe1,0x63,0xb7,0xb8,0xa6,0x75,0xb5,0x45,0xe4,0x0b,0x60,0xf1,0x46,0x67, + 0x63,0xad,0x40,0x36,0x4b,0x20,0x88,0xf4,0x23,0x5c,0xd3,0xe2,0x32,0x04,0x36,0xe8, + 0x54,0x5e,0xf6,0xe8,0x55,0x22,0x0d,0xcf,0xac,0xcb,0x2d,0x7f,0x32,0x78,0xde,0xb7, + 0xee,0x8b,0x50,0xef,0x86,0x63,0xde,0x6a,0x84,0xf7,0xff,0xbd,0x3e,0xb8,0xb4,0x8b, + 0xeb,0x1c,0x70,0xd9,0x51,0xca,0x63,0xda,0xc0,0xab,0xf1,0x46,0x14,0x14,0xd3,0xe9, + 0x64,0x93,0x4b,0x22,0x15,0x31,0x45,0xb8,0x31,0x92,0xa7,0xd9,0xcb,0xa4,0x9b,0x98, + 0x59,0xc5,0x77,0x59,0x54,0xad,0xa8,0x9e,0xaa,0x8a,0x0b,0x18,0xcb,0x05,0xba,0x67, + 0x32,0x60,0x98,0x56,0xc0,0xdb,0xeb,0x4d,0xf1,0xfc,0x43,0x0a,0x74,0x36,0xd3,0x68, + 0x05,0x95,0x5e,0x28,0xea,0x3a,0x81,0xfa,0x40,0x9c,0x6a,0x99,0x0f,0x0e,0xb0,0x02, + 0xdc,0xb2,0x0f,0x0b,0x5b,0x81,0xba,0xb5,0xaa,0x6b,0xdf,0xb0,0x36,0x6d,0x7a,0x30, + 0x1c,0x18,0xd7,0x81,0x1c,0xd2,0xa6,0x0f,0x37,0x63,0x2a,0x19,0x68,0x6f,0x78,0xde, + 0xae,0xea,0xf1,0x6c,0x05,0x18,0x33,0x88,0xe5,0x23,0xbd,0x2e,0xde,0xae,0xd0,0xed, + 0xf7,0xe9,0x7b,0x09,0x01,0xda,0xf3,0xdf,0x47,0xf5,0xb3,0x21,0x73,0xbe,0xa2,0xa6, + 0xaf,0x6f,0xf5,0x3c,0x85,0xfd,0x5c,0x6d,0x0f,0x57,0x39,0x95,0xa7,0xa9,0xf2,0x2b, + 0xe8,0x94,0x64,0x05,0x9b,0x64,0xbe,0x1f,0x4e,0xde,0x8f,0x8b,0x9e,0xde,0xd9,0x8b, + 0x76,0x13,0x7e,0x24,0xd7,0x4f,0xa3,0xa8,0x5a,0x46,0xee,0x85,0xc7,0x9d,0x07,0x6d, + 0xf7,0x7e,0x98,0x71,0x6f,0xa9,0x42,0x9b,0x59,0x35,0xa2,0x50,0x92,0x99,0xdf,0x09, + 0xbd,0xa9,0xaf,0x7a,0xa1,0x2a,0x57,0x2a,0xfe,0xcd,0xb9,0x11,0x28,0x07,0x57,0xf4, + 0x81,0xf5,0x93,0xd7,0xf3,0x57,0xf6,0xd9,0xae,0xcf,0xd8,0x11,0xe3,0x3a,0x67,0x5a, + 0x9b,0x3c,0x81,0xe8,0x47,0x89,0x2d,0x31,0x18,0x5a,0x59,0xd4,0xd7,0x11,0x3a,0x68, + 0x53,0x00,0x87,0xa4,0xc4,0x25,0x99,0x0f,0xe7,0xa3,0x2c,0xa1,0xe9,0x6a,0x56,0x3b, + 0xc3,0x63,0x85,0x06,0x4d,0xce,0xf5,0x38,0x2d,0xa7,0x2d,0x97,0xa6,0x71,0x75,0x22, + 0xe0,0xd6,0xa2,0x16,0xbc,0x3a,0x94,0x22,0x92,0xcf,0x70,0x46,0x22,0x77,0xea,0x94, + 0x45,0x00,0x0b,0x6a,0x9e,0x94,0x55,0x1f,0xaa,0xc9,0x4d,0x24,0x99,0x7d,0x2d,0xd8, + 0x26,0x6a,0x93,0x8a,0x35,0x0d,0x2f,0xe6,0xf3,0x59,0x67,0x67,0x87,0x36,0x33,0xb3, + 0x46,0xb8,0x13,0x76,0xa5,0x72,0xa5,0x39,0x2a,0xa7,0xc9,0x17,0xa4,0x64,0x96,0x77, + 0xb4,0xbc,0xf6,0x56,0x9a,0x39,0x4e,0xaf,0x81,0x15,0x86,0x15,0x50,0xe1,0x9f,0x42, + 0x05,0x55,0x77,0xe7,0xea,0xc6,0xd2,0x61,0xb3,0x0e,0x58,0xee,0xda,0x18,0xa2,0x2f, + 0x97,0x0f,0xda,0x5d,0xa7,0x22,0x5f,0x19,0xf6,0x63,0x35,0x4b,0x9d,0xb9,0xeb,0x9f, + 0xa2,0x32,0x32,0x27,0xcd,0xe6,0xad,0x30,0xc8,0x31,0xc7,0x04,0x36,0xde,0x12,0x72, + 0x36,0x7d,0x44,0xf3,0x4e,0x47,0x02,0x41,0x38,0xcb,0x30,0xfa,0xac,0xcb,0x89,0xcb, + 0x82,0x26,0xc1,0x29,0x89,0x0f,0x19,0xa2,0x21,0x35,0xd9,0xba,0xb9,0x56,0x49,0xce, + 0x0b,0xdc,0xf4,0x83,0xef,0xf7,0x62,0x1e,0x77,0x11,0xd8,0x02,0xa5,0x5a,0xe2,0x2c, + 0x3a,0x8a,0x6f,0xd6,0xdf,0x67,0x16,0x9c,0xda,0x35,0x50,0xb6,0xfc,0xef,0xaa,0x6c, + 0xe2,0xf4,0x13,0x10,0x80,0xb5,0x1f,0x48,0x2f,0xed,0x84,0x4f,0xdf,0x72,0x8b,0x4f, + 0x76,0xfa,0xe4,0x1d,0x24,0xfc,0xdb,0xf4,0x92,0x0e,0xda,0xcd,0x35,0xba,0x60,0xae, + 0x13,0xd4,0x5c,0xb1,0x4e,0x98,0x95,0xa8,0x3c,0xf3,0xec,0xe5,0x0b,0x44,0xa5,0x4e, + 0xf7,0x1e,0x76,0xcb,0x77,0x8a,0x0a,0xfd,0x3d,0x2c,0x56,0x8f,0x42,0x09,0x65,0xf6, + 0x23,0x31,0x95,0x2b,0x44,0xc4,0xa4,0xd7,0x82,0x3e,0x82,0x83,0x33,0x87,0x7c,0xa9, + 0x8f,0x72,0xbf,0xc7,0x2f,0x2f,0x3e,0x17,0xf4,0xc0,0xe5,0x86,0x93,0xb3,0xa9,0x14, + 0x3a,0xc5,0xed,0x27,0xa8,0x61,0x68,0x24,0x80,0xfd,0xab,0xf8,0xc5,0xe9,0x41,0xf4, + 0xeb,0xe1,0xb3,0x58,0x0a,0xb2,0xa3,0x07,0x14,0xcc,0xc0,0xb7,0xb4,0xc0,0x82,0xaf, + 0x34,0x34,0xcd,0xc8,0xb9,0x91,0xa2,0xb2,0x27,0x71,0x81,0xda,0x6b,0xe4,0x81,0x64, + 0x4a,0xc1,0x31,0x8d,0x7a,0xb8,0xd7,0x08,0x7f,0xca,0xfa,0x33,0xc6,0xf0,0xcd,0xc1, + 0xdb,0xfd,0x5f,0x02,0x76,0xe1,0x01,0xff,0x18,0x23,0x98,0x43,0x43,0xb3,0x8c,0xc6, + 0xa4,0x4e,0x19,0x02,0x94,0xaa,0xbd,0xe2,0x3d,0xe2,0x45,0x66,0x5c,0x4b,0xb2,0xdd, + 0x4e,0x22,0xdb,0x45,0xb8,0x5a,0x60,0x88,0x44,0xd7,0x6a,0x45,0x33,0xd7,0xf0,0x2d, + 0x3f,0xe4,0x24,0x77,0x40,0x0a,0x91,0x3c,0xac,0x4f,0x8b,0xc7,0x0f,0xc9,0x67,0xc2, + 0x35,0x6e,0xb3,0xe4,0x4d,0x12,0xcd,0xcc,0x27,0xd1,0x56,0xe3,0x94,0x2a,0xe5,0x2d, + 0xb7,0xf9,0xfd,0xe2,0x83,0xad,0x89,0xf0,0x76,0xe2,0x88,0xd3,0x48,0xcb,0xe3,0x22, + 0x1b,0x7d,0xcc,0x0a,0xaf,0x3e,0xfd,0xcc,0x32,0x54,0x7e,0x26,0x6e,0x4f,0x9c,0xa6, + 0x25,0x2b,0x88,0x58,0x27,0xc7,0x64,0x2b,0x1b,0x13,0xcd,0xb8,0xe9,0x09,0x9a,0x72, + 0xa4,0x78,0x1a,0x6b,0x67,0xf4,0x99,0xeb,0xdf,0x2f,0x82,0xfd,0x67,0x2f,0x03,0x64, + 0x0c,0x0b,0x8c,0x81,0x62,0xf5,0x53,0x82,0xc5,0x70,0x32,0xff,0xd6,0x7c,0x51,0x7f, + 0x80,0x00,0xe8,0x0c,0x03,0x54,0x9a,0x04,0x92,0x80,0x95,0x28,0x88,0x60,0xd3,0x0d, + 0xb3,0x67,0xb7,0x68,0x8b,0x8c,0x24,0xa7,0x17,0xd3,0x59,0x4d,0x15,0x4b,0x03,0xc7, + 0xe7,0xf0,0x2c,0xeb,0xcf,0xa5,0x3e,0x9c,0xd6,0xcb,0x36,0x1f,0x51,0xee,0xf2,0x4f, + 0xba,0xe7,0xef,0xe7,0xfd,0xb1,0xf5,0xdd,0x57,0xc8,0x16,0x91,0xcf,0x99,0xe9,0x94, + 0x39,0x81,0xaf,0xb7,0xdc,0x20,0xcb,0x73,0x30,0x50,0xcf,0x49,0xe4,0x70,0x50,0x06, + 0x61,0x35,0x64,0x2c,0x60,0xf2,0x7c,0xcc,0x72,0x43,0x75,0xae,0x40,0x73,0x34,0xcf, + 0x40,0x70,0xfa,0x29,0xf3,0x83,0x88,0x7d,0x90,0x18,0xbf,0xf2,0xc6,0x61,0x49,0xec, + 0xd6,0x12,0xd0,0x68,0xee,0x4d,0x96,0x9b,0xb7,0x26,0x74,0xf8,0xb5,0x6d,0x70,0xeb, + 0x40,0x0d,0xbf,0x4e,0x2b,0x18,0x86,0x09,0x5c,0xac,0x24,0x81,0x38,0xd5,0x58,0xa9, + 0xd4,0x1c,0x0c,0xfb,0xe7,0x54,0xf3,0xf9,0xf5,0x1c,0xa6,0xe6,0xfa,0x21,0x48,0x9d, + 0x4c,0x0b,0x5a,0x96,0x4d,0x3b,0xa3,0x29,0x4a,0xfd,0x70,0x39,0x9e,0x19,0x97,0x79, + 0xfa,0xf1,0x94,0x51,0x68,0x6c,0x5d,0xc7,0xbd,0x7d,0x59,0x0b,0x64,0x93,0x8e,0xc6, + 0xaf,0x53,0xeb,0x5c,0x3c,0xa8,0x9a,0xcd,0xc3,0x28,0x93,0x0b,0xf2,0x6e,0x3d,0xe9, + 0x6c,0xfa,0xf1,0x6a,0xd9,0x32,0x59,0xde,0x2f,0x32,0xe0,0xc5,0x87,0xc6,0x00,0x55, + 0x83,0x9d,0x0e,0xdb,0x49,0x01,0x69,0x7f,0x58,0x00,0x19,0xac,0x41,0x41,0x7f,0x3e, + 0x07,0x3f,0x1f,0x04,0x92,0x57,0x2d,0x08,0xf1,0x90,0x3b,0xbb,0x3f,0xe0,0x39,0x2a, + 0xc9,0x18,0xc3,0x83,0xec,0xfa,0xa6,0x52,0xb4,0x90,0xa2,0xbf,0xe1,0x5a,0x45,0x4d, + 0xd9,0x60,0xc1,0xaa,0x29,0xad,0x43,0x85,0xcf,0x67,0x05,0x95,0x43,0xdf,0xb2,0xb7, + 0xd8,0xcb,0x19,0x63,0xfe,0xe7,0x37,0x07,0x5e,0x91,0xb3,0xb3,0xb2,0xcc,0x80,0x94, + 0x83,0xd5,0x52,0x28,0x81,0xd3,0x60,0x9f,0x29,0xf2,0x70,0xd4,0xa5,0x86,0x78,0xd9, + 0x74,0x5c,0x53,0x2f,0x9b,0x53,0x09,0x1e,0x95,0x33,0xe6,0x16,0x6a,0x5c,0x84,0x62, + 0xd4,0x1b,0xd7,0xc4,0xa2,0xe1,0x52,0xad,0x3f,0xdf,0x19,0x11,0xa2,0x5a,0xcf,0x4e, + 0xd2,0x09,0x53,0x9d,0x4f,0x11,0xa9,0xe8,0xe9,0xe8,0x72,0x90,0x71,0x55,0x92,0x1c, + 0x87,0xdc,0xee,0x50,0xa7,0x67,0xe1,0xd7,0x96,0xed,0x09,0xf8,0x17,0xbf,0x0e,0x0b, + 0xe9,0xb7,0xd1,0xf0,0x63,0x15,0x84,0x5f,0x0f,0x4a,0xba,0xb3,0xc2,0xab,0xa7,0xfd, + 0xed,0xa1,0x9a,0xcd,0xe5,0x30,0x42,0x26,0xb5,0xb3,0x14,0x48,0x72,0x53,0xd2,0x59, + 0x6d,0xa1,0x24,0xaf,0xd4,0x90,0xde,0x79,0x0e,0xaf,0xc2,0xa6,0x8a,0xe1,0x0f,0xf5, + 0xa5,0xa5,0xa3,0x7e,0x18,0x16,0x35,0xe5,0x15,0x9f,0xaa,0xff,0x6c,0x8b,0xd1,0xaa, + 0x4b,0x66,0x17,0x2d,0xbf,0xa2,0x72,0x5d,0x2d,0xba,0x30,0x0f,0xcb,0x9c,0x7a,0x7d, + 0x3a,0x36,0x3f,0x4d,0xd6,0xff,0x34,0x21,0x22,0x68,0x0a,0xef,0xd7,0x9a,0x66,0x7e, + 0x2e,0x8d,0x1a,0xf3,0xa6,0x0e,0x3d,0xf5,0xcb,0xed,0xa0,0x88,0x71,0x0c,0x77,0x5a, + 0x18,0x20,0x16,0x5d,0xd7,0x51,0xb3,0xa2,0x5b,0x03,0x48,0x51,0xd6,0xd7,0xc5,0x74, + 0xb2,0x24,0x82,0xdd,0x24,0xec,0x15,0x53,0xdd,0x30,0x57,0x7d,0x3c,0x0b,0x38,0x55, + 0xa4,0x03,0x82,0xe8,0xe5,0x50,0xd4,0x77,0xff,0xbe,0xa0,0xbd,0x61,0x53,0xdf,0x9c, + 0x2f,0xd2,0x24,0x9d,0xc4,0x60,0x50,0xba,0x56,0x79,0x20,0x22,0x0e,0x39,0xe6,0x70, + 0x2f,0x5d,0x79,0x46,0x18,0x77,0xf3,0xac,0xb0,0x0b,0x15,0xbf,0x05,0x92,0x31,0x9d, + 0x78,0xd2,0x85,0xee,0x82,0xa5,0xf6,0x74,0xde,0x97,0xa8,0x1f,0x40,0x1f,0xbf,0x50, + 0xe7,0xc9,0x5e,0x36,0xcb,0x65,0x49,0x15,0x8b,0x5b,0xcc,0x22,0x50,0xb1,0xb8,0x88, + 0x6d,0x4d,0xb1,0xe9,0xe0,0x59,0x76,0x35,0x81,0xf0,0x86,0x79,0x2d,0xa5,0xd0,0xaa, + 0x0b,0x25,0x41,0x82,0x6e,0x28,0x2d,0x84,0x13,0xea,0xfa,0xd3,0x4a,0x3f,0xbe,0x66, + 0x8d,0xad,0xe8,0x73,0x3d,0x54,0xb5,0xb8,0xf6,0xd6,0x9a,0xe2,0xc1,0x82,0xc4,0xfd, + 0xc1,0xf2,0x24,0x9b,0xf7,0xbd,0x41,0xc4,0x6c,0x1e,0x1b,0x6a,0x21,0x87,0x32,0x7c, + 0x21,0xbb,0xd8,0x99,0x28,0xc1,0x5e,0xee,0xbf,0xaa,0xad,0x13,0xf4,0x67,0x6b,0xaa, + 0x89,0x77,0xf2,0x2b,0x55,0x37,0xee,0xbf,0xd1,0xfa,0xd3,0x59,0xb5,0x49,0x24,0x38, + 0x55,0xa5,0x98,0x21,0x0c,0xc6,0x81,0xb4,0xa8,0x7a,0x06,0x5d,0xdd,0x3f,0xac,0x2d, + 0x91,0xc8,0xd1,0x40,0x8e,0xb9,0x6c,0x59,0xac,0xd4,0xe3,0x79,0xee,0xf2,0x68,0xad, + 0x14,0x20,0x51,0x10,0xbc,0xb8,0x9c,0x83,0x73,0xd7,0x16,0x09,0xa2,0xa2,0x3f,0xa6, + 0xe1,0x5c,0x04,0x0a,0xc9,0x74,0xbf,0xae,0x6a,0xcf,0xf1,0xeb,0xad,0x8f,0x41,0xb3, + 0x69,0xf5,0x27,0x18,0x11,0xea,0x7c,0x3d,0x3c,0xde,0x3a,0xb6,0x22,0xfa,0xcf,0xcf, + 0xff,0xc6,0x12,0xba,0x5e,0xe3,0x6f,0xe5,0xd4,0xc5,0x18,0xd9,0x18,0x50,0x92,0x14, + 0x68,0x12,0xe8,0x5b,0xe8,0xb9,0xac,0x15,0xd2,0xa3,0xb6,0x5e,0x17,0x15,0x69,0x90, + 0xe5,0x79,0x3d,0x00,0x89,0xc3,0xa4,0x9d,0x84,0xed,0xe5,0x77,0xed,0xe5,0xee,0xb7, + 0xed,0xe5,0xde,0x37,0x6d,0x41,0x5d,0x9b,0x1b,0x4e,0x28,0xfc,0x3d,0xb5,0xc5,0x51, + 0xfc,0x26,0x68,0x84,0x53,0x48,0x3d,0x78,0x41,0x7c,0x71,0x9a,0x73,0xf5,0x8b,0x21, + 0xc0,0x7f,0x5a,0x1a,0x4f,0x7d,0xcb,0xcb,0x09,0xdc,0x51,0x57,0x01,0x81,0x17,0x3a, + 0x38,0xc3,0x4a,0x43,0xbd,0xe2,0x11,0x04,0xa2,0xd9,0x92,0xd8,0x89,0xdc,0xa4,0x5e, + 0xc2,0xe7,0x3b,0xe0,0xc8,0x6b,0x53,0x5f,0x4b,0x0d,0x43,0x15,0xb2,0x89,0x9b,0x83, + 0x1d,0x8a,0x40,0x0c,0x4c,0x4e,0x60,0x72,0x08,0x65,0x55,0x7b,0x07,0xd1,0x6e,0x13, + 0xbe,0x1e,0xf1,0xd9,0x15,0x20,0x97,0xc5,0x49,0x0d,0x8a,0xbf,0x1e,0x7c,0x2f,0x7d, + 0xfa,0xc5,0x48,0x02,0xbe,0x45,0x14,0x70,0x3f,0x03,0x49,0x39,0xa0,0xb6,0x56,0x0b, + 0x9a,0x4e,0x6b,0x65,0xb9,0x8c,0x62,0xe1,0x1c,0xce,0x2f,0x07,0x36,0x73,0x3a,0xb1, + 0x99,0xf4,0x72,0x5e,0xc9,0x95,0x6b,0x68,0x50,0x1a,0x43,0x96,0x76,0x38,0xaa,0x64, + 0x04,0x9c,0xb1,0x2b,0xcc,0xf3,0x74,0xa4,0x82,0x96,0x38,0xc9,0xaa,0xec,0x0e,0x30, + 0x74,0x6d,0x9d,0x42,0x2b,0xcd,0xf2,0x8f,0x0c,0x5c,0x05,0xaf,0xf2,0xca,0x32,0x55, + 0x28,0x87,0x7a,0xb0,0xa0,0x7b,0xf8,0xd5,0xbd,0x85,0xe2,0x47,0xc6,0xb0,0xe5,0x27, + 0xe3,0x59,0xe1,0x3a,0x02,0xb2,0x8a,0xfe,0x19,0x44,0x64,0x5f,0xde,0x57,0x38,0x48, + 0xc5,0xce,0x16,0xf6,0x21,0xd9,0x04,0x41,0x07,0x26,0xb8,0x7d,0xa1,0xd9,0x73,0x8c, + 0x6d,0xb5,0x78,0x40,0x1e,0x8c,0x1d,0x4c,0x5e,0x1f,0x0c,0x41,0x5d,0x13,0x9e,0xf5, + 0x11,0x02,0xa7,0x1c,0x35,0x97,0xf3,0x4f,0xa7,0x9f,0x4e,0x47,0x3c,0x5c,0xe8,0x39, + 0xe0,0x17,0xd0,0xe5,0x14,0xf4,0x89,0xae,0x20,0x41,0x12,0x6d,0x2a,0x95,0xcb,0xee, + 0x3c,0xed,0x0f,0x0c,0x41,0xb3,0x89,0xd5,0xb3,0xf7,0x27,0xc5,0x78,0x38,0x97,0x81, + 0x36,0x59,0x2a,0xe7,0xd1,0x10,0x18,0xd7,0x50,0xc0,0x83,0x31,0xfe,0x75,0x77,0xef, + 0xf1,0x35,0x79,0x21,0x0c,0x88,0xd1,0x15,0x98,0xe7,0xc8,0x58,0x5b,0x6b,0x06,0x39, + 0x8b,0x0a,0x03,0xe1,0x26,0x90,0xf4,0xa4,0x1a,0x1d,0xd6,0x23,0x12,0x34,0x46,0xb0, + 0xba,0x6a,0x3b,0x8f,0x60,0x99,0xfd,0x31,0x24,0xa1,0xdd,0xc7,0xcb,0x07,0x7b,0x4b, + 0x72,0xb0,0x78,0x59,0x04,0xc5,0x88,0x56,0x7b,0x7a,0x70,0x1b,0xba,0x82,0xee,0x63, + 0x30,0x3d,0xf7,0x18,0x2f,0x67,0x92,0xf1,0x45,0x50,0x10,0xdb,0x9b,0x98,0xb5,0x00, + 0x43,0x31,0x58,0xb4,0x9b,0xbb,0x7b,0x6d,0xf8,0xb4,0x2c,0x7b,0x8a,0x04,0x55,0xd2, + 0xc1,0xc0,0x74,0x92,0xa0,0xb0,0x9e,0xe4,0x2c,0xcb,0x11,0xc8,0x39,0xe0,0x54,0xc4, + 0x2f,0x2f,0x7b,0xe6,0xfc,0xb4,0xc5,0x07,0xbd,0xad,0xa1,0xd1,0xa7,0xa0,0xa7,0xfe, + 0xfc,0x2c,0xe0,0xc4,0x40,0x13,0x9d,0x29,0x55,0x0e,0xab,0xeb,0x41,0x46,0x93,0xce, + 0x10,0x05,0x8f,0xc4,0x86,0x8a,0xcc,0x0e,0x07,0xcd,0x3e,0xd4,0x6c,0xe9,0x3b,0x20, + 0xbc,0x57,0xa2,0x2a,0x1e,0x1e,0x5b,0xeb,0x4b,0x43,0x3e,0xe0,0x42,0xba,0x4f,0x2a, + 0xaa,0x00,0x64,0x57,0x8b,0x71,0x39,0x95,0x80,0x16,0xb8,0xbe,0x8e,0x31,0x70,0x76, + 0x46,0x8c,0xc3,0xef,0xcc,0x31,0xf1,0xe9,0x61,0x8b,0xe0,0x14,0xbc,0xbf,0xa3,0x62, + 0xb4,0x47,0xff,0x19,0x9b,0x35,0x6c,0x50,0x2c,0x55,0x46,0x23,0x52,0xe0,0x81,0xf3, + 0xb6,0xa6,0x93,0x11,0xd0,0xda,0x47,0x4a,0x80,0x94,0x26,0x52,0x02,0x68,0x2c,0xe6, + 0x72,0x44,0x59,0x14,0x7e,0x33,0xba,0x3d,0x77,0x48,0xfa,0x92,0xa5,0x29,0x49,0x77, + 0xa9,0x8a,0x7e,0xbb,0xa4,0x01,0x8e,0xa5,0x25,0xc5,0x0a,0x58,0x0e,0x6d,0xde,0xf0, + 0xb7,0x56,0x20,0x89,0xc7,0xcd,0x3a,0x48,0xb4,0x65,0xcf,0xd7,0xc2,0x19,0xf7,0x31, + 0x3d,0xe1,0xce,0x94,0xdf,0xa9,0xf0,0x8c,0x09,0xf9,0xf8,0xe1,0xcd,0x4a,0x41,0xd3, + 0xa8,0x29,0x2f,0x2f,0x9b,0x2b,0x5c,0x4e,0x58,0x53,0x32,0x90,0x2a,0x52,0x16,0x1d, + 0xa7,0xe9,0xd2,0xa8,0x5f,0x9f,0xd2,0x66,0xad,0x41,0x86,0xf0,0xa3,0x46,0xf3,0xa3, + 0xe5,0xfa,0x23,0x50,0xfa,0x13,0xa2,0x37,0xcb,0xa1,0x99,0x2b,0xa8,0x5e,0x90,0xb8, + 0x57,0xce,0x36,0x22,0xdf,0x70,0xdc,0x1f,0x2d,0xb1,0xe0,0xe4,0x24,0x1c,0xd2,0x81, + 0x7e,0x3e,0x24,0x78,0xc2,0x39,0x71,0x32,0x80,0xe2,0xba,0x1e,0xc1,0x4f,0x1e,0xd7, + 0x0f,0x90,0x40,0xe8,0x2c,0x77,0x97,0x76,0x28,0xb1,0xad,0x49,0x8b,0x15,0x71,0x89, + 0xb1,0xc8,0xc1,0x4b,0x00,0x0d,0x69,0x10,0x2d,0x83,0x13,0xdc,0x3e,0xcf,0x0a,0x11, + 0x57,0xd9,0x69,0x90,0xd6,0x3c,0xbf,0xcc,0x1c,0x83,0x2e,0xaa,0xfd,0x67,0x24,0x58, + 0x71,0x5b,0x87,0xd5,0xe0,0xb4,0xc5,0x23,0x10,0x17,0x60,0x72,0x67,0x95,0xdd,0xff, + 0xe1,0x59,0x60,0x33,0xb4,0xb8,0x3d,0xb6,0x49,0x2a,0x76,0x90,0xee,0xc2,0xa5,0x86, + 0x84,0x5a,0xc6,0x6f,0x53,0xf2,0x75,0x63,0x96,0x69,0xa9,0x72,0xcb,0x97,0x31,0x25, + 0x98,0x9c,0xd8,0xc1,0x82,0x9e,0x4b,0x8c,0x15,0xae,0xcb,0x5a,0x6d,0x55,0xf4,0x86, + 0x07,0xc6,0xdb,0x81,0x0d,0xc9,0xf3,0xe2,0x4d,0x12,0x20,0x44,0x4a,0x5f,0x0e,0xd2, + 0x2e,0x8d,0xf7,0xde,0x5d,0x5b,0x59,0x35,0x29,0x38,0x46,0xa3,0x6a,0xc6,0x0f,0x83, + 0x86,0xfa,0x3b,0xa3,0x79,0x06,0x1f,0x4d,0xae,0x6a,0xa5,0x5a,0x7d,0x52,0x60,0x64, + 0xbc,0x3a,0x50,0xef,0x97,0x49,0x70,0x4e,0x9d,0x7c,0xd5,0xff,0x24,0x8b,0x25,0x7d, + 0x83,0xd2,0x44,0x44,0x72,0x2a,0xaa,0x00,0xf0,0xe1,0x8a,0x7c,0xe5,0x70,0x12,0xcd, + 0x0b,0xee,0x50,0x05,0xf9,0x98,0x6b,0x4d,0x5a,0x9f,0xd1,0x41,0x30,0x00,0x82,0x01, + 0x91,0xb8,0x49,0x5f,0x99,0xe8,0x38,0x2c,0x43,0x39,0xff,0x0c,0xf1,0x84,0xf6,0xeb, + 0xab,0xa5,0x21,0xb9,0xa8,0xbe,0x46,0x24,0x17,0x7d,0xf3,0x4b,0x56,0x77,0xea,0x3f, + 0x40,0x01,0xec,0x2d,0x37,0x7e,0x8d,0x4a,0xfc,0x27,0x0c,0x75,0x31,0x91,0x98,0xba, + 0x81,0x77,0x22,0x2b,0xd2,0xb2,0xe4,0x5a,0x74,0x03,0xdf,0xe6,0x93,0xe1,0x42,0xf0, + 0x5a,0x0e,0x4e,0x07,0xa7,0xcb,0xd1,0x60,0xea,0x2e,0x4e,0xb6,0x01,0x70,0xb4,0xb7, + 0xfd,0x7f,0x0d,0xec,0x73,0x5e,0x5a,0x59,0xcf,0x81,0x2f,0x5c,0xf9,0x34,0x43,0xa4, + 0x16,0x89,0x76,0x33,0x95,0xf9,0xb8,0xdb,0xd8,0xb8,0x46,0x52,0xed,0xc8,0x2a,0x59, + 0x03,0x51,0x7b,0x89,0xae,0x5c,0x9e,0xd0,0xce,0x1b,0x90,0xd4,0xfe,0x0e,0x2a,0x0c, + 0xe1,0x55,0xa8,0x3f,0xee,0x17,0x73,0x90,0xf5,0x6a,0x88,0xfb,0x9d,0x1c,0x1a,0x82, + 0x94,0xbb,0xf0,0x58,0x99,0x97,0x3d,0x1a,0xfb,0x38,0x09,0xa4,0xfc,0x92,0x5d,0x68, + 0xa1,0xff,0x2f,0xf8,0xa4,0x58,0x30,0x22,0x56,0xa5,0x39,0x32,0xa2,0x2a,0x56,0x8f, + 0x49,0xd5,0x5a,0x12,0x9c,0x9b,0x85,0xbe,0x02,0x5a,0x37,0x73,0x3a,0xa7,0x8b,0xac, + 0x63,0x95,0x94,0x84,0x2b,0xc6,0x45,0x97,0x05,0xd5,0xe0,0x98,0x35,0x33,0x12,0x19, + 0xc1,0xec,0x2a,0xf5,0xec,0xe0,0x7f,0x56,0x8e,0xfb,0x22,0xd8,0xc1,0xac,0x19,0x4e, + 0x07,0x54,0x43,0xf2,0xa5,0x75,0x51,0x8d,0xd5,0x7f,0xa6,0x2a,0x79,0xdf,0x08,0x9a, + 0x3b,0x70,0xa5,0x6c,0x75,0xae,0x95,0x6f,0x14,0xa3,0x31,0xd6,0x48,0x7d,0xa4,0x43, + 0x47,0x10,0x5a,0x69,0xa9,0x59,0x6e,0x71,0xd9,0xa4,0xb6,0xd8,0xd8,0xdd,0xa1,0x22, + 0xfd,0x11,0x4a,0x4a,0x3e,0x47,0xb7,0x2a,0x00,0xab,0xda,0x96,0xaa,0x83,0x15,0xb1, + 0x40,0x52,0x2c,0x11,0xeb,0x3b,0xad,0x7f,0xc5,0xeb,0x79,0x31,0x55,0xba,0x07,0x67, + 0x74,0x58,0x1d,0x50,0x7a,0x70,0x06,0x19,0x78,0x5d,0xbd,0xeb,0x95,0x96,0xf4,0xa0, + 0x63,0xfa,0x51,0x90,0x86,0x94,0x5a,0x5b,0x59,0x97,0x71,0x31,0xdc,0xd1,0xc5,0x4e, + 0x03,0x16,0xa9,0x56,0x50,0x8e,0x49,0x4e,0xfa,0x03,0x61,0xaa,0xb8,0x7d,0xb8,0x06, + 0x97,0x79,0x0d,0x2e,0x76,0x8d,0x64,0x51,0xa6,0x70,0xf7,0x59,0xd2,0x80,0x05,0xe0, + 0xca,0x13,0x07,0x3a,0x0a,0x04,0x9a,0xe6,0xd0,0x86,0xa2,0xf9,0xd8,0x8a,0x95,0x5a, + 0xd3,0x3d,0x6d,0x51,0x0c,0xa8,0x65,0xf7,0xbc,0x66,0xce,0xbd,0x1e,0xc9,0xb9,0x91, + 0xf0,0x02,0x7f,0xfe,0xf8,0xb0,0x5c,0x7c,0x5e,0x29,0xa0,0x3a,0x94,0xf6,0x9a,0x0f, + 0x1e,0x3c,0x16,0x49,0xa7,0x8a,0x16,0xaf,0xdd,0xba,0x6c,0x3b,0xbb,0xa8,0x9a,0xd3, + 0x23,0xb7,0x9a,0xb1,0xb8,0x75,0xed,0x6f,0x55,0xed,0x56,0xfd,0xea,0xf9,0x0c,0xa8, + 0x1d,0xbe,0x09,0xcc,0xd4,0x8d,0xb0,0x5a,0x8a,0x8f,0xa5,0x82,0x34,0x31,0xb1,0x5f, + 0x5a,0x57,0x3e,0xf6,0xf1,0x8e,0x7a,0x50,0x4b,0x9b,0x08,0x48,0x3a,0x8a,0xb1,0xe6, + 0xfc,0x93,0xd5,0xc6,0xb8,0x5e,0xf4,0xe2,0xaf,0x81,0x26,0xd0,0xcc,0xcc,0x85,0xc7, + 0x57,0xca,0xb5,0x88,0x7a,0x45,0xc6,0x0c,0xf0,0xf0,0x59,0x20,0x2f,0x56,0xf0,0x5b, + 0xd0,0x36,0x00,0x72,0xec,0xae,0x15,0xb0,0x8a,0xc9,0x98,0xb5,0x47,0xaf,0x7e,0x79, + 0x83,0x43,0x37,0x6c,0xa7,0xc4,0x0c,0xc1,0x67,0xca,0xda,0x33,0x5a,0xa9,0x05,0x37, + 0x3b,0x97,0x13,0xda,0x57,0x6a,0xf5,0x32,0xc1,0xc5,0x4d,0xd5,0x81,0x98,0x4f,0xf8, + 0x55,0x8d,0x98,0x0f,0x53,0x4a,0xb5,0x66,0xc5,0x07,0xbf,0x24,0xb8,0x42,0x53,0x6c, + 0x73,0xd0,0x5b,0x15,0xa8,0x2c,0xb9,0xcd,0x41,0x45,0xaf,0x8e,0xa6,0x57,0x0a,0x0b, + 0x63,0xd4,0xb2,0xca,0x27,0xc5,0xc8,0xcc,0x96,0xf4,0x64,0xe9,0x5f,0x20,0x3d,0x5e, + 0x8e,0x4b,0x21,0xfc,0x84,0x84,0x09,0x98,0x02,0x72,0xc1,0xa2,0x5a,0x0d,0x3d,0xab, + 0x2a,0x4f,0xc9,0x07,0xb5,0xc1,0xa6,0xd6,0x7c,0x2e,0xd6,0x9e,0x12,0x1f,0xc2,0x45, + 0x04,0xaf,0x7c,0x4a,0xb3,0x63,0xbc,0x3a,0xaf,0x4f,0xf2,0xe1,0xe0,0x3c,0x73,0x16, + 0xa7,0x03,0xe2,0x15,0xfd,0x91,0xf2,0x34,0xc9,0x5e,0x57,0xab,0xa0,0x11,0x70,0x2a, + 0x02,0xae,0xf2,0x82,0xcc,0x54,0x61,0x19,0x7a,0x68,0x18,0x49,0x7e,0x4d,0x26,0xd7, + 0x95,0x9a,0x27,0xfd,0x4b,0x3e,0x90,0x96,0xb2,0x85,0xb4,0x89,0x44,0xe2,0x87,0x2c, + 0xc1,0xb8,0x85,0x75,0x8f,0xa6,0xa5,0x41,0x0a,0x4e,0xf3,0xca,0x99,0x8e,0xb2,0x25, + 0x35,0xa1,0x5a,0x8c,0x76,0x08,0x63,0x6c,0xdd,0xf4,0x26,0x8b,0x62,0x7c,0x45,0x03, + 0x33,0xd0,0x4c,0xc2,0xfa,0x2a,0xef,0xe3,0x3e,0xc2,0x12,0x9c,0xbb,0xf2,0xd5,0x19, + 0x19,0x6e,0xce,0x6d,0x2b,0x66,0x1c,0x69,0x72,0xbb,0xa2,0xfd,0xfb,0xfe,0xf5,0xfe, + 0xdb,0x1f,0xac,0x0e,0xd0,0x04,0xb5,0xca,0xc6,0x56,0x1f,0x50,0x93,0xf4,0x63,0x0e, + 0xbf,0xf6,0xf4,0x99,0x90,0x92,0x2f,0x47,0x08,0xab,0xb0,0x49,0x49,0x80,0xba,0xf3, + 0x55,0x70,0xf3,0xb5,0xe0,0x0e,0xd7,0x80,0x3b,0xeb,0x8b,0x9b,0x63,0xae,0xd4,0x9f, + 0x18,0x5b,0x52,0x1c,0xda,0x66,0x39,0xaf,0x0b,0xc6,0x76,0x74,0x3a,0x82,0x26,0xd5, + 0xa9,0xce,0x3a,0x33,0x0f,0x06,0x89,0x9c,0x02,0xa6,0x49,0x05,0x5c,0x20,0xe0,0x1d, + 0xcf,0x58,0x7f,0xd0,0x6e,0x27,0x34,0xf6,0xb1,0xc3,0x45,0xf9,0x8b,0x21,0x71,0x90, + 0xbd,0x0a,0x10,0x24,0x2a,0x90,0x49,0x0d,0x8c,0xfe,0x09,0xce,0xef,0xa5,0xb1,0x24, + 0xa0,0x0d,0x44,0x40,0x3a,0x09,0x86,0xe2,0xba,0xc7,0x91,0xd5,0xe0,0xa7,0x7e,0x11, + 0x41,0x8a,0x57,0xeb,0x2e,0xd8,0xf1,0x71,0xc6,0xb3,0xf1,0xa0,0x68,0xf1,0xf9,0xe0, + 0xeb,0x33,0x29,0xf1,0x34,0x75,0x6d,0xb7,0x88,0xdd,0x7d,0xaf,0xe5,0xc8,0xa9,0xf9, + 0x1c,0xc3,0x3a,0x5e,0xa8,0x4f,0x8c,0x4b,0xaa,0x78,0x06,0x1b,0x49,0x71,0x8d,0x01, + 0x03,0x34,0xca,0xe4,0x42,0x29,0xfe,0x72,0x98,0x77,0x14,0xe6,0x97,0x27,0xbb,0xed, + 0xb8,0xde,0xd5,0xa9,0x17,0x56,0xe5,0xb2,0x36,0xae,0x4a,0x05,0x95,0x42,0xd0,0x7f, + 0x7f,0x4a,0x2f,0x82,0x55,0x63,0x37,0xbe,0x89,0xb7,0xd6,0xd8,0xb1,0x24,0xea,0x8c, + 0x3e,0xa2,0x98,0x31,0x5f,0x47,0x5a,0x21,0xd9,0x63,0x73,0x35,0xd7,0x2e,0xd4,0x25, + 0x4c,0xfa,0xd1,0xb9,0x90,0xa4,0xc6,0xb3,0xdf,0xd3,0x08,0xc8,0xfa,0x13,0xf6,0xdf, + 0x37,0x6c,0xe1,0xe0,0x63,0x4e,0xf7,0x14,0x03,0xe7,0xdf,0xce,0x0e,0xf3,0x02,0xb0, + 0x6f,0x0c,0x19,0x59,0x9b,0x87,0x05,0x98,0x6d,0x86,0x43,0x5c,0x96,0x1a,0xba,0x01, + 0xbb,0x07,0x66,0xe7,0x26,0x00,0x32,0xd8,0x62,0x4f,0xf8,0xfa,0x85,0x7e,0xf4,0x7d, + 0x2f,0x53,0xaf,0x05,0x5e,0xa7,0x36,0x20,0x5f,0xfa,0x6e,0x65,0x3a,0xbd,0x0b,0x11, + 0x3c,0xd2,0x14,0x7d,0x4b,0x46,0x5e,0xf9,0x35,0x59,0x17,0x5d,0x3b,0xbe,0xfe,0x8a, + 0x2b,0x63,0xce,0xc5,0xf9,0x31,0xff,0x5d,0x1f,0xab,0xba,0x1c,0x4b,0xab,0x13,0x37, + 0x36,0xed,0xcc,0xd7,0xa2,0x34,0xf7,0x51,0x9a,0x33,0x4a,0x73,0x42,0x69,0x5e,0x8b, + 0x12,0xe7,0xc7,0xf3,0xcf,0x47,0x69,0xae,0x28,0xb9,0xd6,0x43,0x07,0x2f,0x5f,0x1f, + 0x32,0x1b,0x32,0xd7,0x72,0x12,0x7d,0x30,0x92,0x81,0x08,0x19,0x94,0x7c,0x7a,0x59, + 0x90,0x0e,0x5c,0x45,0xe8,0x0b,0xda,0x22,0x63,0xcf,0xa0,0x7b,0xc4,0x1c,0x35,0x4d, + 0x1e,0xde,0x58,0xbf,0xf2,0xe8,0xd1,0x83,0x47,0xdd,0xa0,0x8d,0xdd,0x41,0x11,0xd0, + 0x0d,0xd5,0xa0,0x7a,0x26,0x45,0xc9,0xb9,0xe8,0x0f,0xf4,0x51,0xc1,0x59,0xed,0x85, + 0x3e,0x4a,0xc6,0x9c,0xe0,0x83,0x0b,0xf0,0x6f,0x10,0xa9,0xe4,0x40,0xb7,0x49,0x39, + 0xea,0xb5,0x0a,0xf6,0xb1,0x96,0xa6,0xcd,0x88,0xc5,0x9c,0x5f,0x99,0x61,0xd0,0x36, + 0x91,0x78,0x58,0xd6,0x22,0xfb,0xc7,0x05,0x76,0x34,0x37,0x3b,0x0b,0x31,0x6c,0xa2, + 0x07,0x18,0x71,0x18,0xfc,0x68,0xe9,0x21,0xc5,0x38,0x2f,0x66,0xff,0xf9,0xdb,0x61, + 0xa0,0xaf,0x38,0xe3,0x91,0xb5,0xb1,0x08,0x9e,0x0f,0xf6,0x1e,0x3d,0xda,0xfd,0x8e, + 0xf2,0x10,0xd5,0x96,0x6e,0x15,0x4c,0x3e,0x18,0x49,0x4c,0x40,0xe8,0xa2,0x1f,0x9a, + 0xb5,0x13,0xd0,0xb1,0x58,0xab,0x40,0xd9,0x41,0x48,0x9f,0x84,0x4f,0xec,0x93,0x80, + 0x8f,0x1f,0x9f,0x1d,0xfc,0x85,0xe4,0x29,0xde,0x8f,0x15,0x3b,0xc4,0x0f,0x1f,0x55, + 0x4f,0x8e,0x0e,0xff,0xf6,0xe6,0xf9,0x41,0x1a,0x42,0x2b,0x4e,0xdf,0x3a,0xa3,0x6d, + 0x54,0x96,0xcc,0xaf,0xe7,0xef,0x61,0x29,0x49,0x4d,0x24,0x22,0x5e,0x27,0xe7,0xf9, + 0xec,0x3d,0x25,0xf3,0x2f,0xc6,0x5c,0xd2,0xa7,0x26,0xde,0xa3,0x16,0xf6,0x66,0xc4, + 0x19,0xfa,0xa7,0x59,0x22,0x6a,0x9e,0x3e,0x15,0xa7,0xcd,0xcd,0x9c,0xf4,0xf1,0x09, + 0x2d,0x6b,0xef,0x85,0x5a,0xa1,0x33,0xc5,0x6d,0xeb,0xcf,0x5e,0xff,0xf2,0x66,0xff, + 0xd5,0x8b,0xd7,0xaf,0xd4,0xc8,0xcc,0x3b,0x0e,0xd3,0xf3,0xfe,0xfa,0x33,0xb0,0x75, + 0x66,0x37,0x17,0x72,0xf2,0x7c,0x77,0xcb,0x99,0x3f,0x68,0x26,0x53,0x63,0xbc,0xc3, + 0x4f,0x1e,0x5c,0x72,0xac,0x35,0x33,0x9a,0x7c,0x65,0x56,0x45,0xe0,0xa8,0x14,0x3e, + 0xc9,0xf6,0xe6,0x4c,0xcc,0xea,0xf4,0x94,0x92,0xa6,0x1b,0x23,0x80,0x52,0x15,0x1d, + 0x21,0x94,0xc0,0xf8,0xda,0x0e,0xf1,0x3f,0xd0,0x99,0x74,0xc9,0x01,0x4a,0x4b,0xbd, + 0xe1,0x98,0x2b,0xf0,0x99,0x0e,0x09,0x73,0x5a,0xa2,0x13,0x48,0x46,0xa5,0xf6,0xd9, + 0x14,0x9a,0x5f,0x45,0x21,0x93,0xbd,0xa2,0x05,0xe5,0xd8,0xce,0x28,0x18,0x7c,0x51, + 0x20,0x39,0x81,0x66,0xc9,0x81,0x65,0x8e,0xbd,0x40,0x59,0x4c,0xe7,0x8b,0x9e,0x46, + 0xab,0x37,0x51,0xec,0x0b,0x87,0x33,0x9c,0x0e,0x01,0x10,0x4a,0x04,0xa5,0xf6,0xcd, + 0x22,0x0b,0x7c,0x30,0x5e,0x31,0x80,0xf9,0x17,0xa6,0x20,0xc3,0x6b,0x9d,0xcb,0x55, + 0x63,0x05,0x05,0xad,0x95,0x89,0x42,0x28,0x22,0xf0,0xf1,0xa4,0x47,0xdc,0x78,0xee, + 0x18,0x7d,0x7b,0x22,0x93,0x0a,0x53,0x04,0x1a,0x5d,0xd3,0x80,0x9a,0xcf,0xc9,0xf9, + 0x80,0x69,0xe8,0x19,0x0a,0x6e,0x6e,0x09,0x75,0x58,0x60,0x2c,0x65,0x68,0xd3,0x8c, + 0x6e,0xd7,0x31,0x41,0xeb,0x20,0x94,0x3a,0xa0,0xe1,0x84,0xc9,0x39,0x3d,0xc7,0x86, + 0xd0,0x2b,0x2b,0xa7,0x00,0x62,0xc5,0x9e,0x4f,0xa7,0x63,0x8d,0xf0,0xed,0x9b,0x35, + 0x98,0x71,0x33,0x66,0x34,0xde,0x5e,0xd2,0x5a,0xa6,0x9a,0x7c,0x5d,0x21,0xa7,0x93, + 0x0d,0x58,0xf0,0x14,0xc6,0x21,0x05,0x7e,0xd7,0x95,0x0b,0x4c,0xb9,0x40,0x0b,0x3a, + 0x9d,0x06,0xf4,0xfa,0x57,0x0e,0x49,0x8c,0x64,0x5c,0xe8,0x40,0xd1,0x77,0x86,0xa3, + 0xb9,0x4a,0xb3,0x4e,0xa0,0x09,0x4f,0xd0,0xe5,0xcd,0x69,0xce,0x9e,0x30,0x9e,0x06, + 0x4f,0xa0,0xa2,0x7e,0x1a,0x3a,0xc7,0x91,0x96,0xcc,0x2e,0x7d,0xb5,0xba,0x9c,0x4c, + 0x8b,0xad,0xb1,0x0e,0x13,0x1c,0x44,0x92,0x26,0x57,0xb5,0x12,0x66,0xeb,0x64,0x10, + 0x41,0x49,0x33,0x46,0x54,0x5b,0x91,0x94,0xb8,0xf2,0x08,0xc9,0xc6,0x59,0x7e,0x8e, + 0x63,0x41,0x55,0xc8,0x4d,0x27,0x3b,0x22,0xcf,0xfa,0x26,0xad,0x98,0xa2,0xbc,0xd5, + 0x05,0x68,0xcf,0x8a,0x15,0xcf,0xc3,0x89,0x04,0x5a,0xd0,0x03,0xa7,0x8d,0xc6,0x91, + 0xc3,0x82,0x1d,0xff,0xba,0xb6,0x13,0x74,0x84,0xaf,0x26,0x13,0xb2,0xe7,0x52,0xa6, + 0x61,0xec,0x47,0x82,0xe8,0x47,0xcc,0xe1,0xf2,0x18,0xbe,0x23,0x6b,0xe7,0xb7,0xed, + 0x6f,0xdb,0xb1,0xb5,0xa1,0x50,0x30,0x78,0xac,0x83,0x62,0x8d,0x48,0x45,0xb9,0x86, + 0x59,0x00,0xb1,0x41,0xb6,0x5e,0xa2,0x36,0x06,0x5d,0x0e,0x9f,0xbd,0xb1,0xb4,0xa5, + 0x25,0x59,0x8d,0x81,0xbf,0xdc,0x50,0xf8,0x33,0x6d,0x75,0xfd,0xcf,0x8e,0x37,0xda, + 0x85,0x0d,0x6a,0x54,0xce,0xb7,0x5a,0x85,0xdd,0xbd,0x92,0x1a,0x87,0x6d,0xac,0x66, + 0xad,0x54,0x5d,0x5e,0x86,0xc4,0x69,0xde,0x2f,0x6d,0x56,0xc5,0xe9,0x53,0xfd,0xd7, + 0x79,0x76,0xae,0x5e,0xcd,0xea,0x39,0x77,0x62,0x94,0x00,0x37,0x6b,0x40,0x4d,0xb0, + 0x21,0x1d,0x95,0x6b,0xa3,0x1c,0xc1,0x03,0x5d,0x5d,0xf9,0xec,0xfa,0x5b,0x0f,0x80, + 0x06,0x94,0x51,0xb9,0xea,0xe7,0xc0,0x98,0x48,0x52,0x82,0x88,0x9e,0x9b,0x66,0xf3, + 0xef,0xd6,0xfc,0x02,0x3b,0xa2,0x2f,0xb3,0x03,0x52,0x09,0xc8,0x93,0x41,0xec,0x0e, + 0x1a,0x17,0x2b,0xe5,0x7a,0x1c,0x78,0x17,0xbd,0x34,0xcd,0xa7,0x60,0x0b,0x6a,0x2e, + 0x60,0xd2,0x83,0x10,0x68,0x96,0x0f,0x3f,0xf6,0xe7,0xac,0x08,0x70,0xd6,0x49,0xd5, + 0x50,0x4e,0xa6,0xcb,0x4f,0x59,0xf1,0xff,0xac,0x65,0xfe,0x97,0xb3,0x96,0xf1,0x4c, + 0x4f,0x5c,0x09,0x4b,0x7b,0x54,0xe5,0x4c,0x35,0x73,0x59,0x6b,0x64,0x13,0xd4,0x5b, + 0xa2,0x6c,0x36,0xbe,0x09,0x36,0x1b,0xdf,0x7c,0xa6,0x11,0x4b,0xf0,0xc7,0x8d,0x58, + 0x82,0x2f,0x30,0x62,0x51,0x00,0x1b,0x2d,0x26,0xbe,0xc0,0x96,0x45,0x3f,0xff,0x36, + 0x53,0x96,0x2f,0xd1,0x70,0x7d,0x81,0x3a,0xcb,0x33,0xa1,0x79,0x56,0x9a,0x86,0xa2, + 0x2d,0xcb,0xf4,0xff,0x6f,0x3e,0x05,0xad,0x3f,0x1c,0xf6,0xee,0x05,0x44,0xe6,0x41, + 0x97,0x09,0x31,0x74,0xf5,0xcf,0x56,0xee,0x66,0xdf,0xf8,0xc7,0x2c,0x19,0xad,0x1d, + 0xb3,0x99,0xe1,0xd6,0xf0,0xd9,0x35,0x49,0xf0,0xcd,0xba,0x6d,0x29,0xcf,0xa2,0x19, + 0xad,0x98,0x26,0x3f,0xcf,0x58,0xdb,0xa2,0xe3,0xdb,0x67,0xaf,0x98,0x62,0x7b,0xd4, + 0xb9,0xd5,0x28,0x84,0xcb,0xb3,0x5d,0x08,0xc4,0xd3,0xb5,0x16,0x43,0x77,0xb7,0xd1, + 0x08,0xee,0x66,0xa3,0xb1,0xc1,0x54,0x41,0xa9,0x46,0x84,0x30,0xe6,0x16,0x60,0x9c, + 0x9b,0x8c,0x3b,0xbc,0x19,0x62,0x8c,0x3a,0x96,0x7c,0x47,0xe1,0xdf,0x6a,0xe2,0xe0, + 0x9f,0xe5,0x07,0x11,0x3d,0x36,0x31,0xf4,0x67,0xb3,0xfa,0x11,0x5b,0x55,0x10,0x13, + 0x4a,0x2f,0x8a,0x72,0xc9,0x8f,0xac,0xd3,0x3a,0xc8,0x1a,0x53,0xbe,0x56,0xca,0x8e, + 0x7e,0x5e,0x02,0xb8,0x38,0xfa,0xe1,0xf0,0xe6,0x5a,0x23,0xbc,0xa9,0xc0,0xa2,0x38, + 0x7a,0x85,0xde,0xf4,0xf5,0x41,0xc7,0x06,0xb4,0x9a,0x06,0xd7,0x39,0xb6,0x51,0x97, + 0xe6,0xd6,0xd9,0x08,0xb9,0x56,0x8f,0xc8,0xcf,0xcd,0x18,0x8f,0x38,0x29,0x5b,0xea, + 0xe1,0xdc,0xd2,0xcc,0xce,0x77,0xc6,0x4c,0xa1,0xf4,0x4d,0x73,0xd4,0x3e,0x8e,0x9d, + 0x10,0x17,0xb0,0xec,0x4c,0x57,0x45,0x2a,0xe3,0x53,0x68,0x25,0xc2,0xaf,0x62,0xb7, + 0xc1,0x73,0x64,0x24,0xde,0x71,0x22,0xc3,0x16,0x96,0xc6,0xf6,0x60,0x69,0x5c,0xea, + 0xb0,0x33,0x1d,0x19,0x5c,0xfc,0x53,0x2c,0x8d,0x2a,0x06,0xe7,0x29,0x4b,0x3e,0x11, + 0x5a,0xea,0x91,0xd8,0x52,0xdc,0xed,0x88,0xa3,0x1d,0x3a,0xc5,0x8c,0xfd,0xaf,0x2a, + 0x3f,0x37,0x7a,0x67,0x4e,0x23,0xe3,0x1e,0xd3,0x81,0xde,0xcb,0x23,0xc2,0xb8,0x17, + 0x7f,0x55,0xf9,0xfa,0x2d,0x7c,0xb4,0x38,0x83,0xfb,0x20,0xa4,0x50,0xc2,0x22,0x43, + 0x15,0xa3,0xd4,0x41,0xe9,0x82,0x75,0xd8,0x9d,0xe6,0x6e,0x32,0x3f,0x19,0x75,0xc8, + 0xc9,0x1c,0x24,0x3c,0xf9,0xbd,0x46,0xea,0x20,0x27,0x3e,0xd0,0x09,0xc3,0xa4,0xb8, + 0x3c,0x47,0x32,0x6d,0xbf,0x91,0x8c,0x28,0x4c,0x1d,0xb9,0x9a,0x8e,0x9d,0xea,0xc4, + 0x3c,0xd3,0x94,0x93,0xa7,0x9b,0xea,0x10,0x3b,0x04,0xa1,0x54,0x6f,0x5d,0x9e,0xb5, + 0xa7,0x47,0x66,0x90,0x25,0xa5,0xb3,0xa5,0xc4,0xf6,0x44,0x62,0x3c,0xb0,0x1d,0x1b, + 0x57,0x10,0x1d,0xa3,0x18,0xb6,0x8a,0xf7,0x34,0x2d,0x41,0xe9,0xd8,0x42,0x26,0x7d, + 0x88,0xf4,0x7c,0x39,0x48,0x53,0x7f,0x28,0xea,0xcd,0xdd,0xa8,0x2c,0xd2,0xab,0x51, + 0xfc,0x75,0xca,0x7b,0xa6,0xb1,0x1d,0x2d,0xe5,0x20,0xaf,0x1f,0x20,0x80,0x4b,0xfd, + 0x5a,0xa4,0x1f,0x8e,0x1e,0xc0,0xc7,0xdb,0x22,0x6c,0xe0,0xa9,0x11,0xde,0x84,0x7a, + 0xcd,0xf7,0xc3,0xd1,0xde,0x31,0x5d,0x1c,0xdf,0x8b,0xe7,0xd2,0x43,0xb2,0x25,0x44, + 0x39,0x62,0x4e,0x1f,0x8e,0x76,0x8f,0x8f,0x63,0xb7,0xdc,0xae,0x2d,0x57,0x68,0x39, + 0x82,0x17,0x84,0x5c,0xb6,0x81,0xc6,0x50,0xe1,0xa6,0xc6,0x6d,0x1d,0xe1,0x53,0x69, + 0xc3,0x73,0x88,0x80,0x4d,0x91,0x3a,0x69,0xa8,0x73,0x6c,0x07,0xb0,0x4e,0xdb,0x7e, + 0xfd,0xc0,0x02,0xd0,0x94,0x05,0x99,0xde,0x3e,0x58,0x59,0x81,0x6f,0x42,0x46,0xb0, + 0xf4,0xb0,0x35,0x21,0x0f,0x5b,0x13,0xd7,0xc3,0xd6,0x84,0x3d,0x6c,0xa9,0x9e,0x7e, + 0x95,0xb0,0x67,0x3c,0xf3,0x6c,0x67,0x51,0x38,0x54,0xa2,0x01,0xf5,0xbf,0x6a,0x9e, + 0xd5,0x69,0x40,0xf5,0x73,0xc5,0x19,0xd7,0xa4,0x11,0xb6,0xc2,0x06,0x2a,0x24,0xea, + 0x74,0x8b,0x92,0x02,0x24,0x81,0xd4,0xde,0x27,0xfa,0x75,0x50,0xb2,0xbe,0x9e,0x86, + 0xd5,0x91,0x11,0x97,0xce,0xbb,0x76,0x60,0xea,0xb0,0x74,0x42,0x34,0x78,0xe1,0xc4, + 0x86,0xcf,0x29,0xd0,0x44,0x44,0x93,0xd1,0x0c,0x99,0x71,0x4a,0xcf,0x2d,0x76,0x85, + 0x49,0x0c,0xc6,0xf1,0xb8,0x15,0xbd,0xbb,0x6a,0xd0,0xe4,0x36,0x91,0x91,0x85,0x0e, + 0x63,0x42,0x80,0x3e,0x5e,0x8f,0x30,0x62,0xcb,0x33,0x91,0xe2,0x87,0xb8,0xab,0x84, + 0x80,0xc0,0x22,0x79,0x13,0xc3,0x0c,0x88,0x8e,0xca,0xe8,0x93,0x8d,0x1a,0x5c,0x6c, + 0x11,0xd1,0x4d,0x16,0xbe,0x4f,0xdc,0x80,0xad,0x74,0xcb,0xa2,0x0a,0xa3,0x54,0xd7, + 0x5b,0x1e,0x83,0x93,0x40,0xb9,0x3e,0x8e,0x2f,0x04,0xa4,0xea,0xc0,0x51,0x88,0xde, + 0x60,0xed,0x1d,0x85,0xbb,0x04,0x7e,0x8f,0xfe,0x7f,0x40,0xff,0x3f,0xa4,0xff,0x1f, + 0xd1,0xff,0x8f,0xc3,0x04,0xf1,0x4a,0x10,0x40,0x04,0xf1,0x4e,0xc2,0xdd,0x36,0xfe, + 0xa0,0xe4,0x2e,0x8a,0xee,0x3e,0x08,0x8f,0x3b,0x68,0xd1,0xe1,0xf6,0xe5,0x1c,0xf5, + 0x63,0x6c,0x20,0x57,0xfd,0x96,0x89,0x5b,0x37,0xc1,0xb1,0xa0,0xe0,0x1a,0x32,0xa2, + 0xe8,0x45,0xbf,0x57,0xd3,0x69,0x1e,0xdb,0x47,0x3d,0x30,0x58,0x86,0xb1,0x69,0xd5, + 0x8e,0xeb,0xdf,0xa9,0x8d,0xdf,0x9f,0x54,0xcf,0xbe,0xb5,0xb5,0xdf,0xd1,0x9a,0x71, + 0x35,0x55,0x2d,0x71,0xf4,0xbb,0xf8,0x88,0x3b,0x61,0xaa,0x03,0x81,0xed,0xed,0xf2, + 0x5c,0xeb,0x04,0xec,0x5c,0x11,0x3a,0x39,0x7a,0x78,0xdc,0xc3,0x9f,0x3a,0x24,0x5c, + 0xda,0xfb,0x63,0x8d,0x1c,0x8d,0x11,0xdb,0x2c,0x12,0x28,0x2d,0x05,0x0b,0xe8,0x0c, + 0xd9,0xbb,0x03,0x34,0x65,0x4d,0x7a,0xd1,0xf3,0x8f,0xfe,0xfc,0xf9,0x64,0x90,0x52, + 0x42,0xe9,0xd4,0x7b,0xd6,0xc0,0x9b,0xdc,0x9e,0xf8,0x89,0xc3,0x6c,0x3e,0x75,0xf2, + 0x25,0xa5,0xa9,0x37,0xf3,0x07,0x36,0x48,0x18,0xd9,0x04,0xf4,0xe7,0x1a,0xb2,0x19, + 0xee,0x8a,0x3f,0xa2,0x8d,0x81,0x1c,0xe6,0xbd,0xa2,0x71,0x98,0x12,0x4a,0xdd,0x41, + 0xc5,0x1d,0x02,0x9e,0xbb,0x5b,0x80,0x0e,0x03,0x84,0x09,0xf9,0x94,0x21,0xf1,0x25, + 0x1a,0x50,0x3d,0x76,0xa5,0x13,0x31,0x26,0x48,0xe3,0x5b,0xef,0xea,0x24,0x90,0xe2, + 0xdf,0xc7,0xc8,0x91,0x4b,0xed,0x52,0x07,0xef,0xac,0xff,0xe7,0x57,0x19,0xd7,0xfc, + 0x6d,0x71,0xe5,0xdb,0x56,0xbe,0xa4,0x1c,0xc4,0x03,0x9f,0x8a,0x7f,0xa6,0x39,0x15, + 0x2f,0xe4,0x23,0x95,0xa8,0xe1,0x39,0xdf,0x16,0xa3,0x0f,0xd3,0x5a,0xd5,0x3a,0xac, + 0xa6,0xa7,0x5a,0x55,0x4a,0xbb,0xb1,0x36,0x42,0xb0,0x8d,0x83,0x39,0x2e,0x2b,0xb4, + 0xd0,0x27,0xe8,0x3f,0x24,0x7d,0xdf,0x47,0x19,0x1a,0xc1,0x65,0xd5,0xe1,0x84,0xfd, + 0x93,0xd3,0x8c,0xad,0xc4,0x8c,0xb7,0x65,0xa9,0x67,0x4b,0xbc,0xe8,0x9e,0x16,0xac, + 0x6d,0xe8,0x58,0x85,0xcf,0x9e,0xc2,0x06,0xad,0xd2,0xf9,0xfc,0x2f,0x28,0x15,0x77, + 0xbd,0x62,0x15,0x51,0xcf,0xc4,0xdc,0x8f,0xf4,0x24,0x5c,0x12,0xb7,0x88,0x29,0x7d, + 0xec,0xbd,0x1b,0x34,0xde,0xb5,0xf4,0x8f,0xe3,0xe6,0xed,0xec,0x8a,0x4b,0xf5,0x50, + 0x95,0x2f,0x31,0xea,0x8d,0x40,0xa8,0xdb,0x70,0xad,0xd0,0x5e,0x4e,0xb4,0x1e,0x4e, + 0x51,0x11,0xe2,0x3f,0xd8,0x03,0x5f,0xa8,0x0b,0x57,0xf1,0x3f,0x50,0xbf,0x5e,0x38, + 0x8d,0x84,0x10,0x8f,0x0b,0x00,0x38,0x16,0x99,0x61,0xd5,0x31,0x60,0xcd,0xc5,0x43, + 0x71,0x5a,0x2c,0xc7,0x10,0x61,0x63,0x2b,0x7c,0x67,0x6f,0x6e,0x3e,0x21,0xeb,0xf1, + 0xa7,0xc6,0xaf,0xd8,0x3b,0xa3,0x80,0x7b,0x17,0xb6,0xe8,0xf9,0x49,0x33,0xe0,0xb6, + 0x29,0x53,0x3a,0xb0,0xd0,0x43,0x91,0xf3,0xcb,0x21,0x4e,0xd8,0xe0,0x48,0xae,0x68, + 0x89,0x27,0x42,0x0f,0xb9,0x43,0xdc,0x83,0xc7,0x29,0x9a,0xb9,0x51,0x59,0x5c,0x8e, + 0xc7,0xa4,0xea,0x34,0x07,0x9c,0x72,0x76,0xc3,0x4d,0x92,0xf0,0x03,0xa8,0x58,0xbd, + 0x70,0x41,0x1c,0xd0,0xbc,0xa1,0xf5,0x13,0x41,0xb1,0x31,0x2e,0x0a,0x1e,0x0d,0x87, + 0x46,0x85,0xbd,0xbd,0xbd,0x22,0x47,0x2f,0x8c,0x74,0xdd,0x82,0x14,0x16,0xd3,0x03, + 0x9d,0xab,0x44,0xe6,0x44,0xef,0xd8,0xc6,0x85,0xd5,0x31,0x6b,0xfb,0x1b,0xe7,0x30, + 0x61,0x22,0x05,0xdd,0x64,0x22,0x68,0x98,0x6c,0x41,0x3f,0x1e,0xec,0x98,0x8d,0x69, + 0xf5,0x9f,0xaa,0xe2,0x2b,0x8a,0xf1,0x77,0x13,0xd0,0x19,0x0b,0x2d,0xf8,0xea,0xd3, + 0xc0,0xff,0x07,0xcd,0x60,0xd0,0xd7,0x1d,0x8c,0x94,0x2e,0xca,0xd2,0x4f,0xf8,0x3e, + 0xba,0xad,0x25,0x5e,0xa4,0xea,0xca,0x3b,0xfb,0xf4,0x40,0xf6,0x30,0x28,0x6f,0x8c, + 0xb9,0x0b,0x2d,0xe7,0x2b,0xc9,0xb5,0x9c,0xaf,0xeb,0x56,0xd0,0x91,0x4f,0xd6,0x9e, + 0x51,0xef,0x07,0x35,0xff,0xa0,0xe0,0x0f,0x4c,0xb6,0xaf,0x6b,0x26,0x68,0x9d,0x2d, + 0x73,0x5a,0x12,0xec,0x58,0x7f,0x15,0x5a,0x97,0xaf,0xc7,0x70,0xfc,0x7a,0x92,0xd4, + 0xdf,0x4d,0x04,0x0a,0x15,0xb4,0x27,0xc4,0x52,0xce,0x3f,0x20,0x26,0xb8,0x98,0x78, + 0x8e,0x1b,0x7d,0xfe,0x4a,0xd7,0xa2,0xda,0x7e,0xe6,0xaa,0x61,0xf5,0xbb,0x09,0x7a, + 0xc6,0x31,0x4b,0x76,0x3e,0x67,0x96,0xc9,0x39,0x96,0x9a,0x39,0xd8,0xbd,0x2f,0x5a, + 0xed,0xf0,0x8c,0x37,0xf3,0xa4,0x8e,0x1a,0xb9,0xaf,0xb9,0x5e,0x61,0x29,0x21,0xc6, + 0xbc,0x0e,0x78,0xec,0xa3,0x3f,0xe9,0x84,0x88,0xc2,0x86,0xdd,0x0f,0x18,0x06,0xde, + 0x08,0xed,0x09,0xf4,0x87,0x09,0x3c,0xbb,0xb6,0x78,0x0a,0xbf,0xe1,0x09,0x5f,0x40, + 0x35,0xd1,0x1f,0xb1,0xf7,0x6c,0x4c,0x4f,0x98,0x7a,0xa3,0xe9,0x31,0xeb,0x51,0x45, + 0xab,0x98,0xb5,0xe4,0xe8,0x34,0xa0,0x03,0x87,0xf9,0x30,0x33,0xa6,0xb9,0x26,0x3a, + 0x05,0xd0,0xab,0xe5,0xa2,0xfe,0x34,0x3c,0xb8,0x3c,0x47,0xe4,0x18,0xbb,0x09,0xbe, + 0x57,0x56,0xa3,0xdd,0x4f,0xc5,0x73,0x10,0x6b,0xd4,0x87,0x93,0x42,0xbd,0x0c,0x79, + 0xf3,0x99,0xd2,0x08,0x18,0x01,0xaa,0x07,0xe0,0x45,0x85,0xf7,0x0a,0xf9,0xab,0x43, + 0x8b,0x92,0xc9,0xfd,0xb7,0x3c,0x66,0x23,0x8a,0x7a,0x55,0x6d,0xed,0x25,0xbc,0x88, + 0x46,0x17,0xfd,0x4f,0xc9,0x3f,0x2a,0xb1,0x82,0xfe,0x61,0xc4,0x84,0x9d,0x77,0x45, + 0x63,0x67,0x45,0x14,0x42,0x99,0x8a,0x2c,0x04,0xae,0x62,0x02,0x03,0x91,0x13,0x55, + 0x02,0x57,0x5a,0x86,0x69,0x6a,0xfc,0xa4,0x5d,0x09,0x40,0x76,0x53,0x17,0x80,0x4c, + 0xb1,0xfa,0x85,0x65,0x59,0xda,0xf1,0xea,0xae,0x2f,0xa5,0x67,0xeb,0xb0,0xfd,0xef, + 0x40,0x8a,0x57,0x4e,0xf1,0xa8,0x6a,0x00,0x2f,0x46,0x66,0xfb,0x49,0xc3,0xa5,0xd3, + 0xbe,0x31,0x61,0x99,0x58,0xa2,0xfb,0x0b,0xf8,0x85,0x40,0x2d,0xa4,0xd6,0x47,0xad, + 0x45,0x25,0xa4,0xe4,0x68,0x9a,0x16,0x55,0x65,0x05,0x00,0xa5,0x04,0x6f,0x04,0x22, + 0x81,0x8a,0x5b,0x76,0xf8,0xd5,0xc4,0x6f,0x30,0xc8,0xce,0xd3,0x8c,0x04,0xaf,0x2a, + 0x24,0xb1,0x4a,0x2a,0x89,0x32,0x9a,0x42,0x11,0xd2,0x8e,0x09,0xbe,0xec,0x1f,0x32, + 0x2a,0xa1,0x0e,0x9b,0xb9,0x35,0x43,0xdc,0x27,0x0f,0xdb,0xc4,0xc3,0xb5,0x9b,0xe6, + 0x09,0x55,0x8c,0x25,0x5f,0xab,0xe9,0xde,0x0d,0xa0,0xa4,0x4e,0x85,0x1a,0x48,0x56, + 0x07,0xc8,0x8f,0xdb,0x31,0x93,0x46,0x7b,0x8e,0x28,0xe4,0x16,0x15,0xb8,0x5a,0xf8, + 0xa1,0x14,0x06,0x1d,0xdd,0xce,0xf1,0x69,0xa9,0x3b,0x90,0xa2,0xdc,0x7f,0x10,0x9f, + 0xa1,0xee,0x89,0xde,0x1d,0x34,0x62,0xfc,0xb6,0xbe,0x2e,0x77,0x20,0xf7,0xc6,0xb1, + 0x2b,0x68,0xda,0xed,0xae,0x6e,0x69,0xb0,0x77,0x30,0x45,0x91,0xbe,0xa1,0x5b,0xc1, + 0xef,0x06,0xd4,0xa8,0x62,0xab,0x9f,0xd4,0x1c,0xd3,0xbe,0x57,0xe9,0x90,0xc0,0x94, + 0x68,0x90,0x22,0xc9,0xec,0xe9,0x49,0x46,0xe2,0xb4,0x16,0x4d,0xa5,0xf9,0x0b,0xd3, + 0x19,0x61,0x62,0x06,0x12,0x65,0x23,0x2e,0xda,0x02,0xb0,0x1b,0xa6,0xa0,0x36,0x40, + 0x79,0x64,0xf5,0xd7,0xe5,0xc4,0x4a,0x96,0x64,0xdc,0xe8,0x08,0xe2,0x2c,0x6f,0x14, + 0x41,0x34,0xc3,0xe0,0xc1,0x37,0xad,0x0e,0x9b,0x8f,0xc6,0x28,0xb2,0x5a,0x69,0x65, + 0xa8,0x10,0x10,0xb3,0xd5,0x64,0xf4,0x3e,0x26,0xda,0x13,0xaf,0xa6,0xf3,0x8c,0x29, + 0x97,0x7c,0x8c,0x75,0x67,0xe9,0x12,0x8e,0x2a,0x32,0xe5,0x50,0x4d,0x79,0x26,0xb0, + 0xd4,0x97,0xfa,0xfe,0x05,0x54,0x6c,0x6e,0x10,0xb5,0x4a,0x10,0xac,0xec,0x2c,0x65, + 0xaf,0xa8,0x62,0x1c,0x95,0x23,0xc1,0xc2,0xe3,0x11,0xce,0x8e,0xd2,0xdf,0x34,0x69, + 0x16,0x33,0x06,0x6c,0x2b,0xe1,0x0b,0x0f,0x0d,0x81,0x33,0x0e,0x27,0xe0,0x07,0x7e, + 0x29,0x71,0xb4,0x4e,0x94,0x30,0x06,0x6e,0x1a,0x46,0x81,0x93,0x69,0xe1,0x97,0xd4, + 0x4d,0xf5,0x60,0x3f,0x07,0xa9,0x6e,0xa5,0xaa,0x1a,0xd6,0x41,0x3e,0x71,0x43,0x51, + 0xb8,0x11,0x16,0xe4,0x19,0xa3,0x35,0x55,0x4f,0xdc,0xbd,0x90,0x16,0x8d,0x8f,0xc6, + 0xfb,0x18,0x2f,0x88,0x97,0x93,0xcb,0x02,0x52,0x6a,0x24,0xc5,0x74,0x7f,0xdc,0x0b, + 0x55,0x84,0x45,0x61,0xbd,0x61,0x03,0x8b,0x20,0x92,0x5a,0x44,0xa8,0x45,0x13,0x3e, + 0x89,0x65,0x03,0xed,0x91,0x58,0x34,0x20,0xe5,0xb6,0x59,0x47,0x09,0x5a,0x74,0xb6, + 0xd0,0x08,0x85,0x47,0x70,0xad,0x41,0x1d,0x84,0x78,0xc5,0xca,0x31,0x60,0xeb,0xed, + 0x3e,0xea,0x4c,0x62,0x3f,0x9a,0x84,0xb7,0xaa,0x45,0xe5,0x1c,0x2f,0x19,0x73,0x75, + 0x41,0x64,0x59,0x8c,0xa0,0xe8,0x6a,0x33,0x6e,0x61,0xdc,0x39,0x2b,0x8e,0x4c,0x3e, + 0x3a,0x0e,0x4e,0xdd,0xc5,0x4a,0xb9,0xb7,0x14,0xd7,0x39,0xbb,0x70,0x57,0xc0,0x8a, + 0x87,0xea,0x8b,0x14,0xe8,0x49,0xe9,0x1a,0xe6,0x8b,0x50,0x8d,0x96,0x33,0x20,0x46, + 0x05,0x73,0x61,0x9d,0xbf,0x63,0x8c,0x89,0x98,0x58,0x02,0xe9,0x4a,0xfd,0x5c,0xc9, + 0x43,0xb8,0xc5,0x46,0x5a,0x09,0x7f,0x51,0x9c,0x9b,0xd0,0xfc,0x43,0x8d,0xe3,0x88, + 0x08,0x18,0xf7,0x1b,0x52,0xa3,0x17,0x3e,0xb9,0xa4,0x70,0x18,0x68,0x0f,0xc1,0x30, + 0xe8,0x99,0xe7,0x58,0xdc,0x40,0x1b,0x12,0x1e,0x03,0xa2,0x62,0x46,0x53,0x93,0x5c, + 0xd9,0x0d,0x4d,0x08,0x48,0xbc,0xc6,0x12,0x4d,0x43,0x83,0xf0,0x4b,0x0c,0x0d,0x99, + 0xb9,0x44,0x25,0x37,0x68,0x63,0x17,0xef,0xeb,0xbc,0x1c,0x22,0xd3,0xd9,0x8d,0xb6, + 0xfd,0xce,0x7b,0x43,0x42,0x06,0xbb,0xce,0xfc,0xca,0xa5,0x7b,0xd0,0x2a,0xce,0xeb, + 0x83,0x55,0x95,0x24,0x24,0xa5,0xe7,0x90,0x86,0x8a,0xe9,0x41,0x44,0x10,0xaa,0x8f, + 0x53,0x36,0x9d,0x48,0x1f,0x42,0xa9,0x46,0x85,0x04,0x15,0xba,0xc1,0x3e,0xa5,0xf8, + 0xac,0x57,0xf1,0x4a,0x4a,0xb4,0x60,0xd3,0x96,0x0e,0xcd,0xbc,0x3e,0xc4,0xc0,0xf0, + 0x46,0xd8,0x95,0xbf,0xf8,0xe3,0x13,0x07,0x7a,0x0e,0x20,0x83,0xaa,0xba,0xb4,0x75, + 0xb7,0x0c,0x6a,0x8a,0x22,0x0d,0xf8,0x68,0x40,0xde,0x10,0xdb,0x9d,0x6a,0xf9,0xe6, + 0x6e,0xdc,0x89,0x4c,0x99,0xc6,0xa0,0xe1,0x01,0xfb,0x8f,0xea,0x3b,0xa0,0x2a,0xcd, + 0x7c,0x9c,0xf6,0xd9,0xb9,0x75,0xa4,0x04,0xca,0x52,0x53,0x95,0x38,0x4c,0x17,0x68, + 0x66,0x95,0x70,0xe7,0xc3,0xc9,0x2c,0x75,0xe7,0x08,0x81,0xa3,0x24,0x99,0x28,0x2c, + 0x1c,0x74,0xf1,0x5a,0x0a,0x92,0x80,0x45,0x1a,0x73,0x9e,0x29,0x3a,0xe7,0xba,0x6a, + 0x0f,0x9e,0x67,0x4d,0xe1,0x04,0x9d,0xa0,0xaf,0x92,0xae,0xf8,0xf9,0x9d,0xf7,0x3f, + 0xb0,0x78,0x1c,0x90,0xdd,0x10,0xb4,0x26,0xe2,0x7a,0x8e,0x44,0x7a,0x1c,0xa8,0x73, + 0x5b,0x45,0xf5,0x2b,0x20,0xba,0x90,0x6a,0x2b,0xaa,0x27,0xed,0xa2,0x6c,0x7a,0x2d, + 0xdd,0xc1,0xa4,0x94,0x9c,0xbc,0x52,0x96,0x94,0xd1,0xd4,0xea,0x94,0x45,0x10,0xd7, + 0x1a,0x5e,0x51,0x23,0xc8,0x25,0xa3,0xd3,0x59,0x49,0xd3,0x36,0xd4,0x69,0x25,0x3f, + 0x59,0x2f,0x68,0x4d,0x68,0xc8,0x8b,0x6a,0x67,0xf2,0x84,0xea,0x1b,0x5c,0x29,0x6a, + 0xdd,0x13,0xd0,0xb8,0x7c,0x45,0x16,0xee,0x93,0xed,0xcf,0xa3,0x09,0xd6,0x52,0x64, + 0xda,0x84,0x98,0xf4,0xc7,0xdd,0x2d,0x34,0x8f,0x72,0xca,0x2e,0x9c,0xf0,0x7b,0x16, + 0xf2,0x53,0xfa,0x9e,0x92,0x5a,0x35,0xdf,0x05,0x08,0x60,0x7b,0x55,0xde,0x65,0x69, + 0x24,0x3e,0x29,0xdd,0xb9,0x58,0x1b,0x73,0x7f,0x3c,0xc5,0x32,0x42,0x3b,0x19,0x2f, + 0xee,0x7e,0xf6,0x11,0x5c,0x07,0x65,0x7f,0x90,0x53,0xd8,0x28,0x06,0x8a,0x3e,0xbc, + 0xbb,0xc7,0xf0,0xcf,0xeb,0x62,0xf8,0x83,0x3b,0xc8,0x10,0xc8,0x9d,0xd9,0xa6,0x9f, + 0xd0,0xc8,0xcb,0xf8,0x62,0x43,0x21,0x51,0x95,0xe3,0x40,0x40,0xe1,0xbb,0xf6,0x0b, + 0x1d,0x2a,0x38,0x12,0x3a,0xd2,0x87,0x72,0x5a,0xe2,0x6c,0x82,0xcb,0x95,0x39,0x33, + 0xad,0x2a,0x54,0xf7,0x6a,0x3c,0x7d,0xdc,0xb6,0x45,0x29,0xa6,0xc1,0xd9,0xdc,0x9f, + 0x38,0xde,0x26,0x8a,0xca,0x29,0x1f,0x59,0x37,0x25,0xf1,0x8d,0x5e,0x33,0xfa,0xc5, + 0x16,0x83,0xeb,0x27,0x32,0xcc,0x5b,0x7c,0x96,0x95,0x96,0xd3,0xb8,0xab,0x6d,0x7b, + 0x10,0x6e,0x14,0xa9,0x46,0x3a,0xf0,0xc0,0x68,0x8d,0xb6,0x9b,0xfe,0xd4,0x07,0xc0, + 0xad,0xe9,0x57,0x59,0xae,0x51,0xa2,0x70,0x23,0xfb,0x04,0x9b,0xe3,0x11,0x19,0x61, + 0x59,0x2b,0x6b,0xa8,0x99,0x2a,0x65,0x05,0xd3,0x8e,0xc4,0xc7,0x42,0x2a,0x75,0xe6, + 0x81,0x5e,0xc7,0xe6,0xc8,0xea,0xd1,0x84,0xc6,0xbf,0x0d,0x7d,0x85,0xf8,0x22,0x0e, + 0xe9,0x6a,0xc6,0x98,0x86,0x7f,0xb4,0x63,0xcc,0xfd,0x0a,0x9d,0x12,0x3a,0x5a,0x37, + 0x01,0x82,0x95,0x40,0x5e,0x81,0xe3,0x5c,0xfb,0xb1,0x9f,0x95,0xd0,0x7d,0xa5,0x3b, + 0x81,0x63,0x1e,0xeb,0xe3,0xf5,0xe3,0x70,0x7e,0x37,0x64,0x48,0xe8,0xaa,0x99,0x87, + 0x72,0x54,0x80,0xb9,0x43,0xf9,0x72,0xd8,0x06,0xb9,0x8a,0x98,0x6b,0x58,0x3b,0x49, + 0xbb,0x96,0xf3,0x5a,0xae,0xa0,0xb5,0xf6,0x11,0xfb,0xfc,0xd7,0x59,0xb8,0x5c,0xda, + 0xd7,0x1f,0xd0,0xa6,0x69,0x67,0x90,0x7a,0xe9,0xbd,0xdd,0x0e,0x86,0x7b,0x5d,0x3b, + 0x00,0xea,0x6a,0x22,0x62,0xbb,0x98,0x76,0x31,0x68,0xbc,0x89,0xe1,0xf9,0xb4,0xe7, + 0x76,0x9e,0x43,0x7b,0x84,0xb6,0xef,0x02,0x7f,0x7b,0xfb,0x8e,0x6b,0x01,0x57,0x3a, + 0x19,0x0f,0x01,0xa4,0xa6,0xcd,0x82,0xce,0x71,0x32,0x34,0xea,0xe3,0x5f,0x2f,0x0c, + 0x42,0xe0,0xd6,0x80,0x96,0x61,0xd7,0x8e,0xb3,0x2a,0x68,0x81,0x3d,0x52,0xc2,0xbe, + 0x0c,0x09,0x5d,0xfa,0xa8,0xd3,0x79,0x3e,0xa2,0x9e,0xa8,0xef,0x28,0xab,0x74,0xbf, + 0xd9,0xba,0xcb,0xf8,0x60,0xa5,0x72,0xdd,0xe8,0x38,0x3d,0xc1,0xf0,0x20,0x70,0x33, + 0x56,0x88,0xfe,0x80,0x43,0xfd,0xa5,0x68,0x94,0xaa,0xa9,0x86,0x0b,0x9d,0x54,0xc4, + 0x07,0x1c,0x64,0xa4,0xa7,0x27,0x2d,0xe2,0xcb,0x28,0x13,0x85,0x48,0x08,0x63,0xe8, + 0xc9,0xa5,0x7c,0x35,0xa6,0x1c,0x72,0x63,0x05,0x50,0xdb,0x71,0x80,0x2a,0xde,0x59, + 0x52,0x4b,0x3c,0x06,0xc5,0x89,0xad,0x79,0x3e,0x1c,0x13,0xb9,0xa5,0x5d,0xa4,0x34, + 0xf0,0x68,0xaa,0xe1,0x36,0x1b,0x0b,0x46,0x79,0x91,0x49,0x5b,0x7e,0x4d,0xa2,0x2c, + 0x4a,0x29,0x03,0x73,0xfa,0x47,0x11,0x76,0xb3,0x17,0x9e,0xb6,0x8f,0x76,0x9a,0x08, + 0x17,0xa8,0xca,0xb9,0x66,0x53,0xa4,0x1b,0xa6,0x2d,0x54,0xe4,0xf0,0xa3,0x5f,0xaa, + 0xf8,0x5a,0x61,0x65,0x0a,0x39,0x70,0x53,0x1c,0x76,0x2f,0x9c,0xb6,0x91,0x07,0x39, + 0xc2,0x5f,0x90,0x3d,0xee,0x88,0x3e,0x37,0x5e,0xe5,0x51,0xa3,0x66,0x51,0x7b,0x26, + 0x6d,0xbf,0xa4,0xb5,0xc9,0x51,0x49,0x61,0xa9,0xaa,0xd7,0x4a,0xd9,0x8d,0xd8,0xce, + 0xdf,0xcb,0x63,0x04,0x8d,0x90,0x81,0x6a,0x71,0x0f,0x7f,0x3b,0xf8,0x23,0x04,0xf4, + 0xc5,0x4d,0x97,0xd8,0xd2,0x9a,0xaa,0x10,0x90,0xa4,0x9a,0x39,0x8c,0x81,0xe5,0xbb, + 0x7c,0xf9,0x6e,0xb2,0x53,0x23,0xce,0x3b,0x98,0x6e,0x54,0x9e,0x8d,0x96,0xcb,0x91, + 0x4a,0x43,0x6d,0x36,0xcf,0xf9,0x53,0x79,0x22,0x1e,0xf8,0xff,0x76,0x76,0xe4,0x02, + 0x97,0x58,0x37,0xa1,0x53,0x68,0x9c,0x15,0x5b,0xa3,0x74,0xe4,0xc0,0x8f,0x7a,0x9d, + 0xa3,0xa7,0x5f,0x1d,0x2f,0xf5,0x5e,0xce,0xbb,0xe2,0x6b,0x7a,0xff,0xd3,0x71,0x5c, + 0x36,0x0c,0x38,0xf3,0xe9,0x88,0x5d,0x00,0x05,0x7d,0xe9,0xea,0x81,0x58,0x4f,0x9e, + 0xe6,0xc3,0xd9,0x9c,0x00,0x7a,0x74,0x1f,0x19,0x59,0xcc,0xaa,0x41,0x46,0x55,0xd3, + 0x14,0x4a,0x77,0xaf,0xec,0xbd,0x7d,0x71,0xf0,0x33,0xec,0x9e,0x77,0xfe,0xce,0x77, + 0xaf,0xbe,0xa2,0x76,0xf9,0xa1,0xa8,0x71,0x46,0x58,0x73,0x1f,0xcb,0xb5,0x9d,0x75, + 0xef,0x66,0x01,0x60,0xe9,0x6c,0x91,0x60,0x8a,0x9a,0xa1,0xea,0xb9,0x56,0x35,0xdc, + 0x92,0x0c,0x18,0xa6,0xa2,0x53,0xab,0xbe,0x40,0xa4,0x5e,0x14,0x97,0xea,0x75,0x31, + 0xa6,0xd2,0x9c,0x58,0xf8,0xae,0x19,0x51,0xde,0x3a,0xd9,0xa4,0x62,0x03,0xe3,0x64, + 0xb3,0xb0,0x5e,0x36,0xb3,0x82,0xa3,0x4e,0xe8,0xf9,0x4b,0xc5,0xc9,0x66,0x61,0x60, + 0x54,0x0d,0xcf,0x41,0x27,0xa4,0x14,0x2b,0xa6,0xe7,0xac,0xd7,0x0b,0x24,0x60,0x58, + 0x04,0x0b,0xba,0x25,0x99,0xeb,0x50,0x8f,0x52,0x05,0x13,0xae,0x4b,0xcc,0x3f,0x30, + 0x7d,0xab,0xf1,0x12,0x06,0xf9,0x74,0xe6,0x80,0xf0,0x82,0x8d,0x55,0x20,0xcc,0x57, + 0x42,0x7f,0xec,0xb8,0x36,0x25,0x95,0x90,0x1d,0x68,0x89,0xed,0x0e,0xb5,0x68,0x30, + 0xcb,0x28,0x53,0x3a,0x2f,0xd3,0x30,0x19,0x1c,0x56,0x93,0x35,0x93,0x16,0x05,0xb1, + 0xff,0xaf,0x34,0x9c,0x7b,0xf6,0xc8,0x00,0xde,0x0f,0xae,0x72,0x78,0x6c,0x63,0x6e, + 0x22,0x9b,0x2d,0xf9,0x34,0xed,0x05,0xf5,0x21,0xe2,0x40,0x86,0xbd,0xf2,0xca,0x17, + 0x9d,0xa9,0xf5,0xf2,0x1f,0x81,0xaa,0x0c,0x84,0xa0,0x0e,0xab,0x60,0xbd,0xab,0x52, + 0x16,0x09,0x32,0x03,0x7f,0x07,0xd1,0x84,0x11,0x31,0xd3,0xb2,0x58,0x33,0xa2,0x7d, + 0x73,0xbe,0xb7,0xc3,0xe2,0x43,0xc1,0x8c,0x50,0x35,0xef,0x59,0x36,0xa1,0xd8,0x1f, + 0xa5,0x0e,0x13,0x59,0xab,0xcc,0xe6,0x94,0x4a,0xeb,0xb4,0xf3,0x73,0x6d,0xdc,0x5d, + 0xe2,0xc6,0xc2,0x04,0x11,0xdd,0xf5,0x1e,0x20,0x1f,0xe5,0x6c,0x0e,0xb3,0xb0,0xcf, + 0x64,0xdd,0x53,0x4e,0x71,0x24,0x60,0x25,0xae,0x9b,0xe9,0x16,0x6b,0x8f,0x81,0x2b, + 0xc3,0xa4,0xa1,0x91,0x3a,0xcb,0xc3,0x53,0x13,0x06,0x80,0xd9,0x08,0x32,0x63,0x64, + 0x4a,0x09,0xdd,0xf4,0x99,0x22,0x7a,0xed,0x19,0xa4,0x48,0xab,0x34,0x49,0xa6,0xc4, + 0xf4,0xbd,0x45,0xa7,0xbb,0xc6,0x24,0x22,0x81,0xc2,0xeb,0x16,0x83,0x06,0x2a,0xe2, + 0x98,0x34,0x84,0xa8,0x8c,0xe0,0xba,0xa1,0xd1,0x71,0xdf,0x52,0xfd,0xc2,0xad,0x8b, + 0x28,0xb8,0x17,0x15,0x7b,0x08,0xc2,0xb5,0x87,0x5b,0x73,0xdc,0xf5,0xba,0x82,0xf6, + 0xc2,0x4e,0x64,0x12,0xb3,0x02,0x6a,0x41,0xfd,0x1a,0xef,0x28,0x8d,0x86,0x16,0x8d, + 0xaa,0x2c,0xef,0x29,0x9a,0xae,0x4d,0xc5,0x85,0x21,0xd1,0x55,0x7a,0xc0,0xee,0x45, + 0xdc,0x75,0x38,0x36,0xbf,0x52,0xab,0x98,0x7f,0x1a,0x65,0xd8,0x61,0x68,0xc4,0xd6, + 0x28,0x6c,0x36,0x49,0xa0,0x8e,0xae,0x1a,0x88,0xc6,0x48,0xd3,0x32,0x5e,0x3b,0xa6, + 0xa0,0x8e,0xba,0x93,0x5d,0xc8,0xc0,0xa5,0xc3,0x68,0x62,0xa8,0x37,0x59,0x5b,0xab, + 0x40,0xa3,0x93,0x0a,0xad,0x38,0x94,0x3d,0x09,0xd9,0xfd,0x4f,0xd1,0x55,0xd3,0x7c, + 0xd4,0xb0,0xb1,0xab,0x1f,0x43,0x4f,0x1a,0x54,0x0a,0x41,0x45,0x39,0x8b,0xa8,0x15, + 0x50,0x53,0x83,0x0a,0x65,0x48,0x6f,0x50,0x4d,0xf0,0x70,0x38,0xa4,0x36,0x61,0x7e, + 0x42,0x53,0xa0,0x86,0xae,0x03,0x33,0xd2,0x75,0x88,0xea,0x79,0xd2,0xe6,0xcf,0x9f, + 0xbb,0x9f,0x7f,0x45,0x28,0xcd,0x2b,0x9f,0x16,0xbe,0x86,0x07,0x44,0x7b,0xa5,0x35, + 0x6c,0x98,0x71,0xde,0x08,0xcd,0xb1,0x28,0x31,0x5c,0x75,0x81,0x3e,0x10,0x06,0x9e, + 0xf1,0x22,0x26,0xd1,0x8d,0xc0,0xbf,0x71,0x5a,0x10,0xae,0xe2,0x3b,0x57,0xc5,0x35, + 0xcf,0x15,0x1d,0x00,0xaa,0x5c,0xd8,0x8c,0x75,0xee,0x63,0x9d,0x57,0xb1,0xfe,0x6d, + 0xff,0xed,0xab,0x17,0xaf,0xfe,0xdc,0x91,0xf0,0x3b,0x61,0x43,0x9a,0x90,0x3e,0xe8, + 0x32,0x9b,0x87,0xee,0xb4,0x0e,0xab,0x1c,0x58,0xd5,0x1a,0x89,0x6c,0x6f,0x63,0xc3, + 0x0f,0xdb,0x6e,0x23,0xb1,0xe2,0x46,0x7c,0x85,0x8b,0x95,0x82,0x9b,0x09,0xaf,0xbb, + 0x2c,0x57,0x7b,0x35,0x92,0xa5,0x52,0x37,0xb1,0x1e,0x95,0xde,0xf2,0x8d,0x33,0xff, + 0x1b,0x67,0x6b,0xbe,0x51,0xfc,0x55,0xfb,0x3c,0x5d,0x3a,0xac,0xc3,0x62,0xb1,0x67, + 0x91,0xd2,0xd4,0x37,0x32,0x4d,0x91,0xf3,0x6e,0x8d,0x5e,0x24,0x8b,0x2e,0x9d,0x97, + 0x5f,0x16,0xb8,0x44,0xaa,0xa6,0x2d,0x4c,0x00,0xb9,0x76,0xa6,0xd7,0x61,0x70,0x75, + 0x29,0xab,0x23,0xe0,0xac,0xf4,0x7e,0x70,0x32,0x9f,0x14,0xb7,0x7c,0x23,0x8a,0xb8, + 0x9f,0x89,0x77,0x33,0x03,0xcf,0xa7,0x6b,0xeb,0xca,0x6d,0x28,0xaa,0x7e,0x3e,0x75, + 0x2b,0x9f,0x4f,0xa9,0x2a,0x25,0xd5,0xb1,0x31,0x65,0x5c,0xeb,0x58,0x56,0x19,0x86, + 0xe7,0x0e,0xad,0x4e,0xa6,0x5e,0x78,0xbd,0x3e,0x99,0x01,0x8c,0xa8,0x6d,0x60,0x5f, + 0xa1,0xc5,0xf9,0x14,0x9f,0xe8,0x25,0x4e,0x90,0xe8,0x11,0x0d,0x85,0xdc,0x8d,0x03, + 0xc4,0xc9,0x51,0x29,0xc3,0x23,0x57,0xb5,0xf7,0x06,0xcf,0xdb,0x08,0x5b,0x78,0x83, + 0xa7,0x58,0x35,0x76,0xf3,0x71,0xe0,0xdd,0x0b,0xe8,0x37,0x9d,0x94,0x4a,0xc4,0x74, + 0x52,0x7d,0xbd,0x55,0xa5,0xd8,0x15,0x00,0xac,0x35,0x4c,0xab,0x8a,0x18,0x7c,0x90, + 0x76,0xc7,0xc4,0x84,0x8a,0xea,0xe8,0xcb,0xda,0x8e,0x41,0xa9,0xb8,0x6b,0x2c,0x8d, + 0x50,0x04,0x6d,0x4c,0x36,0xb5,0x61,0xfa,0x63,0x24,0xec,0x68,0x62,0x36,0x88,0x88, + 0x0f,0x59,0x80,0x5c,0xe1,0x3a,0xc3,0xb6,0x55,0xeb,0x3f,0xa2,0x50,0xdc,0xbd,0xcd, + 0x68,0xaf,0x0a,0x0c,0x1a,0x28,0xea,0x23,0xeb,0x8d,0x45,0xcd,0x44,0x02,0x73,0x60, + 0x08,0x6f,0x98,0x05,0xb1,0x46,0xbd,0xf5,0x35,0xc6,0x1f,0x3a,0x64,0x23,0x1c,0x3d, + 0xb9,0x44,0x95,0x1e,0x2c,0xfe,0xa8,0xcd,0xd5,0xe6,0x93,0x82,0x04,0x2c,0xd9,0xdf, + 0xfd,0x94,0xba,0xbb,0xd8,0xd7,0xed,0x61,0x07,0x87,0x1a,0x25,0xd0,0x8a,0x12,0x56, + 0xf5,0x87,0x76,0x27,0xce,0xd0,0xd3,0x54,0xe2,0xc1,0x90,0x6e,0xc4,0xbe,0xd3,0xfc, + 0x59,0x58,0xfd,0x87,0xbb,0xc9,0xd6,0x32,0xb0,0xfc,0x72,0xaa,0xf4,0x50,0x41,0xcd, + 0xcf,0xdc,0xf2,0xa5,0xc8,0x74,0x84,0xa2,0xc7,0xb1,0xbb,0xf1,0x57,0x49,0x4d,0xb2, + 0x6c,0x35,0x33,0x3a,0x34,0xd9,0xa3,0xe3,0xf7,0x44,0x36,0x1a,0x78,0x44,0x47,0x25, + 0x22,0x71,0x05,0xbf,0xdf,0x34,0x98,0xa9,0x66,0xb5,0x38,0xeb,0x7c,0xea,0x67,0x81, + 0x64,0x38,0xb0,0x32,0xea,0x18,0xde,0x1c,0xfc,0x92,0x0d,0x86,0xfd,0x28,0xa4,0x0d, + 0x18,0xdf,0xad,0xe8,0x9c,0x81,0x7a,0x61,0x2c,0x99,0x59,0x11,0xdf,0xc5,0x02,0xc8, + 0x0e,0xef,0x7a,0x5b,0x3c,0x39,0x60,0xe1,0x24,0x2d,0x69,0xbf,0x5f,0x3f,0x52,0x62, + 0xc7,0xa9,0xf5,0x9d,0x4a,0xa2,0xd9,0x3f,0x86,0x64,0xc6,0xf0,0xe1,0x6d,0xf6,0x8f, + 0x17,0x03,0x4d,0x84,0x3b,0x15,0x8c,0x13,0x8d,0x3d,0x4e,0x94,0x05,0x4f,0x10,0xb8, + 0x52,0x44,0x4c,0xb7,0xd2,0xaa,0xbe,0xc5,0x95,0x89,0x77,0x7b,0x61,0x6e,0x26,0x6f, + 0x7b,0xc7,0x9b,0xbe,0x32,0xb7,0x65,0xee,0xba,0xe1,0xf4,0xf8,0x1a,0xd2,0x82,0x51, + 0xea,0xf0,0x5f,0x86,0xd8,0xc1,0x9f,0xba,0x00,0x7b,0xc0,0x90,0xa6,0x5a,0x64,0x8b, + 0x26,0xed,0x84,0x11,0xc3,0x43,0x3b,0xc1,0x67,0xac,0x0b,0x96,0xb7,0xe5,0x46,0xcb, + 0x4b,0xcb,0x68,0x79,0x0b,0x25,0x96,0x44,0x11,0xed,0x0a,0x34,0xe5,0xae,0x96,0xa6, + 0x5c,0x5b,0x32,0xa9,0xf2,0xc3,0xf6,0x43,0x51,0x3d,0x4d,0x06,0x91,0x24,0x8a,0xfb, + 0x77,0x6b,0x9e,0x78,0xd1,0xc7,0x06,0x49,0x6f,0x56,0x05,0xc4,0x43,0x78,0x38,0xd4, + 0xb3,0xa0,0xf5,0xcd,0x7c,0x47,0x7a,0xc6,0x16,0x7f,0x2e,0x9d,0x71,0xf0,0xef,0x4a, + 0xbb,0xfb,0x80,0x97,0xe5,0xca,0x59,0x9c,0x58,0xad,0xa6,0x3b,0xd0,0x26,0x87,0x67, + 0x0d,0xd8,0xf4,0x76,0xf4,0x69,0x53,0x83,0xed,0xe5,0xd2,0x7d,0xdf,0x7d,0xe0,0xb7, + 0xa7,0x34,0xe4,0x30,0x7f,0x1a,0xb5,0xf6,0xc4,0x46,0xa4,0x75,0x81,0xdf,0xb5,0xbf, + 0xbc,0xd1,0x5f,0x3f,0x0e,0x55,0x4c,0x32,0x59,0x60,0x42,0xeb,0x37,0x90,0xf4,0x59, + 0xab,0xfa,0x32,0xc8,0xc9,0x65,0xf5,0x53,0xb3,0x53,0xfb,0x2e,0xbe,0x71,0x27,0xc1, + 0x42,0x0b,0x74,0xf4,0x21,0xc1,0x05,0xef,0x31,0x82,0x11,0x9b,0xab,0x45,0x7a,0x99, + 0xc4,0xbc,0x22,0xe4,0x6b,0x27,0xfc,0xd3,0xc7,0x26,0x2d,0x15,0x61,0xc2,0x77,0xa5, + 0x60,0x60,0x74,0xc3,0xcc,0x41,0x81,0xc4,0x00,0x4e,0x8b,0x09,0xed,0x5c,0xe6,0x4c, + 0x32,0x09,0x8e,0xbd,0x3f,0x7b,0x3e,0x1a,0x9e,0x23,0x42,0x6b,0x59,0xd2,0xee,0x4d, + 0x51,0x45,0x65,0xa7,0x72,0xb6,0xa7,0x0b,0xe3,0x48,0x02,0x37,0xa1,0xa8,0xcb,0x3b, + 0xb0,0x26,0xca,0x8b,0x69,0x4e,0x0f,0xb8,0xa0,0x85,0xdf,0x19,0xd1,0x9c,0xfa,0x5d, + 0xf0,0x03,0x46,0x6c,0x9a,0x9f,0xfc,0x3e,0x3d,0x91,0x87,0x0c,0xf1,0xb8,0x0b,0x58, + 0x3f,0x39,0x44,0xd7,0x06,0x38,0x9c,0x17,0x26,0x1b,0x73,0x75,0x3d,0x2d,0x29,0xb3, + 0x5b,0xdc,0x08,0x21,0x69,0x53,0x0c,0x42,0x55,0x0b,0x72,0x42,0x2d,0x6d,0x3b,0xef, + 0x82,0x24,0x25,0x39,0x15,0x09,0xa1,0x14,0x08,0x79,0x86,0xe7,0x5e,0x92,0x60,0x8b, + 0x9a,0xde,0x54,0xf5,0xc6,0x8c,0x14,0xc7,0x9e,0x48,0xe5,0x24,0x30,0x67,0x7e,0x14, + 0x82,0xae,0xdd,0x5b,0x7f,0xc1,0x4d,0x03,0x34,0x51,0xc1,0x7e,0xb9,0xac,0xbe,0xb7, + 0x60,0x20,0x3e,0xe1,0x6d,0x5a,0x5c,0xfd,0xcc,0xaa,0xcd,0x33,0x34,0x99,0x7a,0x55, + 0xec,0x04,0xae,0xec,0xd2,0x4a,0x69,0x57,0x5c,0x6b,0xe0,0xd9,0xaa,0x48,0xdf,0xe5, + 0x3b,0xe7,0xb6,0x3a,0x68,0x5a,0xa1,0x30,0x7c,0x4c,0x91,0xe3,0x9c,0x94,0x1e,0xb7, + 0xb7,0xe9,0x4f,0x8b,0x55,0xd9,0x78,0x60,0x73,0x9f,0x63,0x51,0x1a,0xd7,0x5c,0xac, + 0x44,0x88,0x33,0xa6,0x79,0x3d,0x16,0xa9,0xc0,0xed,0x29,0xbe,0x1d,0x7d,0x30,0xf3, + 0x8a,0xbd,0x91,0x3d,0xbe,0xfb,0x75,0x07,0xbf,0x3b,0xbd,0xc5,0xad,0x5e,0xea,0x41, + 0xda,0xa6,0xad,0x17,0x36,0xe2,0x34,0x22,0xa8,0x79,0x78,0x4d,0xce,0xe9,0x33,0x33, + 0x7e,0xa2,0x22,0xba,0x6c,0xc1,0x0a,0xc5,0x2c,0xaa,0xe4,0xbf,0xfe,0x26,0x76,0x6d, + 0xff,0x11,0x4a,0x3a,0x09,0x8d,0xf0,0x14,0x64,0xd7,0xa7,0x2c,0xb3,0x85,0x8d,0x6a, + 0x9d,0x46,0x48,0xfc,0x8f,0xf8,0x4b,0x77,0x03,0x67,0x37,0x9b,0xc8,0x7b,0x2b,0xb3, + 0x26,0x5e,0x49,0x71,0xd6,0x66,0x6f,0x25,0xf7,0xa6,0xce,0xa2,0x5c,0x2b,0xf5,0x4e, + 0x60,0xc2,0x5d,0xda,0x69,0x1b,0xc6,0x00,0xc5,0x30,0xd8,0x16,0x9d,0xfb,0x64,0x2d, + 0xd2,0x93,0x42,0xa8,0xb5,0x30,0xe0,0x4c,0xc7,0x93,0x3b,0xbc,0xbc,0xc5,0x9a,0x11, + 0xa5,0x88,0xae,0xa0,0xae,0x23,0x98,0xe9,0x95,0xd6,0x0c,0xb6,0xee,0x16,0x9e,0xc1, + 0x1b,0x1a,0x8d,0x0a,0xaf,0xe8,0x22,0xdd,0xe0,0x9b,0x5a,0x7c,0xfd,0x0b,0x03,0x3b, + 0x7f,0x67,0x67,0x50,0xef,0x0a,0xe5,0xe8,0xa6,0xad,0xb8,0x67,0xbc,0x44,0x7d,0x6d, + 0xfe,0x85,0x1d,0xcd,0x01,0x08,0x9f,0xbb,0x54,0x64,0x10,0xed,0xc9,0x30,0x29,0x59, + 0xab,0xf9,0x65,0x32,0x1a,0x84,0x13,0x03,0x4f,0xe1,0xd6,0x89,0x27,0x32,0x42,0xbd, + 0xde,0x4c,0xd3,0x95,0x9e,0xe6,0x35,0x71,0x93,0x9c,0xb2,0x02,0xe5,0x9e,0x85,0xa2, + 0xe3,0xc9,0x5f,0xb8,0x77,0x1d,0x91,0x70,0x9f,0x56,0x8e,0x69,0x3e,0xfc,0x67,0x1f, + 0x40,0xe1,0x9f,0x45,0x59,0x66,0xcd,0xaa,0xff,0x94,0xea,0x92,0x59,0xb0,0xbe,0x3e, + 0x79,0xe4,0x89,0x00,0x8f,0xda,0x0f,0xfc,0x29,0xe1,0xca,0x00,0x3a,0x3b,0x6c,0x14, + 0xf4,0x30,0x5e,0x45,0x0e,0x27,0xba,0x6e,0x77,0x53,0x38,0xda,0xfa,0x65,0xc0,0xe1, + 0xef,0x62,0x9b,0xe0,0x2f,0x4c,0x95,0x83,0x66,0x9f,0xa2,0xbe,0x24,0xb1,0x81,0x20, + 0xe3,0xfe,0xa7,0x9f,0xc8,0xe0,0x92,0xf8,0xcb,0xba,0x61,0xbe,0x59,0x32,0xb6,0xf5, + 0x99,0xab,0xf6,0x8e,0x6a,0x46,0xfb,0x31,0x89,0x01,0xa5,0x1e,0x61,0x9e,0xa5,0xa1, + 0x4a,0xef,0x80,0x6a,0xf1,0xd1,0x78,0xe7,0xad,0xe0,0x80,0x6e,0x6b,0x8a,0x57,0xf7, + 0xa0,0x34,0x5e,0x75,0x7d,0x78,0xda,0x80,0x9e,0x27,0x50,0xaa,0x09,0x8b,0xe9,0x7a, + 0x9d,0x83,0xa6,0xe2,0x6e,0x1d,0xd9,0xd0,0x2a,0x55,0x81,0xc3,0xf7,0xec,0xf5,0x84, + 0x18,0x06,0x12,0xb8,0x7c,0x82,0xc3,0x1e,0xf1,0xce,0x71,0x30,0x3d,0x9b,0x27,0x9b, + 0x56,0x58,0xd0,0xfa,0x76,0xf9,0xa0,0x9e,0xdb,0x2d,0x97,0x36,0xc9,0x48,0x29,0x95, + 0xc5,0x79,0x03,0x67,0x59,0xa9,0x98,0x8a,0xad,0x3f,0x4d,0x61,0x6f,0x22,0xf7,0x14, + 0x4a,0xd8,0x10,0x6e,0x4f,0x9e,0x30,0x71,0x49,0x66,0x3a,0x81,0x42,0x44,0xe7,0x51, + 0x23,0xdc,0xe6,0x13,0x20,0x2a,0xe5,0x4b,0x29,0xc9,0xc2,0xf8,0xc7,0xe9,0xd0,0x64, + 0x68,0xc3,0x9b,0xeb,0x4a,0x54,0xe3,0x1a,0x74,0x98,0x66,0xdd,0xdb,0xa6,0xef,0xc2, + 0x1f,0xb3,0x3a,0x25,0xeb,0x04,0x1e,0x8e,0x9d,0x0c,0x67,0x4b,0xb1,0xb7,0x24,0x1d, + 0xc0,0xf9,0xa6,0x7e,0xaf,0x7a,0x5d,0xcb,0xae,0x67,0x10,0x4b,0x4d,0xac,0xff,0xd2, + 0x3d,0x99,0xce,0xc9,0xaa,0x88,0x94,0xeb,0xad,0x7e,0xdc,0x97,0x5b,0x95,0xd3,0x72, + 0xf3,0xc0,0x38,0x68,0xd9,0xed,0xed,0xca,0x04,0x89,0xdd,0xb7,0x5a,0xee,0x2d,0x95, + 0xa1,0xd2,0x88,0x17,0xde,0x08,0x49,0xab,0xa6,0x38,0x96,0x24,0x49,0xdb,0xd2,0xa4, + 0x76,0x5e,0x0a,0x54,0xb1,0x31,0x33,0x86,0x9d,0x2c,0xdb,0xd4,0xc8,0xfb,0x35,0x73, + 0x32,0x8e,0x37,0x30,0x05,0x59,0x66,0x6f,0xe7,0x3b,0xda,0x64,0xce,0x4b,0x59,0x9a, + 0x9a,0x35,0x02,0x09,0x03,0x1a,0x65,0x32,0x3c,0xf6,0x31,0xba,0xa2,0x5a,0xbe,0x80, + 0xf0,0xf1,0xb5,0xeb,0x12,0x20,0x37,0x1a,0x65,0xc9,0x27,0x5a,0xd9,0x6a,0x3d,0xbc, + 0xd5,0x5b,0x29,0x75,0x2b,0x37,0x25,0xb4,0xf9,0xb3,0x14,0x75,0xdb,0x4b,0x4d,0xa7, + 0xf3,0x9e,0x3e,0x68,0xd3,0xbf,0xb5,0x22,0x90,0x5e,0xa4,0x92,0x30,0x14,0x97,0xa3, + 0x81,0xf2,0x22,0x13,0x4a,0x1f,0x3c,0x4c,0x42,0x3b,0xea,0x6e,0xd0,0x3a,0x33,0xe2, + 0x58,0x3e,0x7d,0xf8,0x08,0x92,0xd1,0xe8,0x93,0xd7,0x52,0xf7,0xce,0x23,0xa5,0xf2, + 0xd1,0x3d,0xf2,0x64,0xdd,0xc1,0x4a,0x53,0xbf,0xae,0xfe,0xeb,0x67,0x6c,0xdd,0x0a, + 0xac,0x49,0xa3,0x0c,0x83,0x2b,0x5e,0xf9,0x48,0x1d,0x59,0x9b,0x06,0xe0,0x86,0x06, + 0xaa,0x7b,0xf3,0xf6,0x03,0xef,0xfd,0xe1,0x72,0xd9,0x68,0xf8,0x7c,0xe4,0xe9,0x5e, + 0x7b,0xd3,0xfa,0x6d,0xd7,0x24,0x9f,0x61,0xfc,0x2b,0x7a,0xe8,0x1b,0xd3,0x1f,0xa8, + 0x24,0x2a,0xb2,0x5a,0xc3,0xa7,0xf3,0x4c,0xbc,0x28,0x7b,0xc2,0x54,0x8d,0xb4,0xac, + 0x38,0x68,0x38,0x7a,0x4f,0x80,0x1b,0x67,0x44,0xd1,0x41,0x07,0x31,0x15,0x0e,0xc3, + 0x04,0xf1,0x5c,0xfa,0x08,0xa4,0xdb,0x01,0x5d,0x13,0xd8,0xd3,0x67,0xb4,0xef,0x5d, + 0x84,0x66,0x0b,0xd3,0xc4,0xc5,0xd9,0xb0,0x13,0xd2,0xc6,0x5d,0xa3,0xa0,0xec,0xfc, + 0x5e,0xc0,0x93,0x4c,0x42,0xc7,0x18,0x83,0x4f,0x9d,0xff,0x3c,0x78,0xfd,0xaa,0x25, + 0x41,0x0f,0x28,0x76,0x47,0x54,0xca,0x87,0x3e,0x5e,0x22,0x29,0x56,0x24,0x9c,0xc6, + 0x6e,0x29,0x31,0xba,0x9e,0x22,0x6f,0xe2,0xfa,0x18,0xf7,0xbe,0xa1,0x50,0x45,0xe5, + 0x42,0xbe,0x86,0xd1,0x85,0xde,0x7c,0x96,0x4c,0x57,0xaf,0x8f,0xbe,0x55,0x05,0x96, + 0xbb,0x53,0xa3,0xfa,0xdd,0xad,0xea,0x9e,0xd7,0xd9,0x88,0xf9,0x19,0x1b,0xf6,0x64, + 0xbe,0x32,0x07,0xd1,0x94,0x55,0x9f,0x43,0x8d,0x17,0xc9,0x70,0x30,0xca,0x0a,0x56, + 0xeb,0x10,0xc2,0xf8,0x49,0xf1,0x67,0xb9,0x5c,0xaf,0x5a,0xb4,0xcb,0x37,0x95,0xd9, + 0x91,0x20,0x19,0x3d,0x6e,0xa2,0x7e,0xf9,0xe6,0x2c,0x2c,0xde,0x68,0x9b,0x8a,0xe0, + 0xe7,0x0e,0xeb,0xb5,0xac,0x19,0x40,0x15,0xb7,0x83,0x42,0xe0,0x19,0x82,0x5d,0x6f, + 0x56,0xad,0x61,0x4e,0xc2,0x92,0x88,0x18,0xda,0xf4,0x4c,0x4e,0xbe,0x55,0xcb,0x26, + 0x4a,0x35,0x88,0x4d,0x2c,0xad,0x29,0xd3,0x53,0xa3,0x08,0x40,0xa8,0xa8,0xc2,0x6c, + 0xfb,0xa9,0xb6,0x2f,0x58,0xe1,0x91,0xa4,0xee,0x78,0x51,0xef,0x92,0xfe,0xce,0x54, + 0x6f,0xec,0x0a,0xdd,0x6f,0x12,0x66,0x82,0xda,0xae,0xaf,0xa4,0x54,0xbe,0x3c,0x81, + 0xb9,0x8b,0x0d,0x43,0xe3,0x08,0x99,0xd5,0x4d,0x2b,0x60,0xb6,0x54,0xe3,0x95,0x56, + 0xde,0x48,0xd5,0x71,0x0f,0x14,0x44,0xe2,0x7b,0x4d,0x94,0xd5,0xd9,0x4f,0x8d,0xa5, + 0x22,0x5a,0x9b,0xcd,0x0f,0x60,0x05,0x82,0x19,0xc9,0x65,0x91,0xa3,0xca,0x8c,0xb7, + 0x52,0x60,0x7b,0x7b,0x15,0xae,0x19,0x4f,0x46,0x12,0xa9,0xbb,0x70,0x12,0x2f,0xb2, + 0x91,0xea,0x6d,0xa1,0xd3,0x73,0x8a,0xc3,0xd8,0xa4,0xa6,0x1d,0x59,0x00,0xf0,0x95, + 0x8c,0x31,0x86,0x5e,0xb1,0x5c,0x92,0xcc,0xbe,0x0a,0xfe,0x3a,0x19,0xba,0x18,0xa8, + 0x51,0x49,0x75,0x77,0xca,0xcb,0x3c,0x7a,0xa7,0x31,0x3c,0x66,0xb9,0x2a,0x36,0x2a, + 0xa7,0x0f,0x69,0x74,0xdd,0x9a,0x7e,0xb8,0x27,0x91,0x09,0x7a,0x78,0xee,0xdc,0x83, + 0xed,0xdc,0xd7,0xd4,0x7f,0x2a,0xac,0x5c,0x8b,0x47,0x4d,0x54,0x34,0xe2,0x33,0x37, + 0x57,0x6a,0x1f,0xb7,0xb7,0xa7,0x1f,0x6a,0xa5,0x9c,0x95,0x66,0x15,0x53,0x2d,0x99, + 0xba,0x25,0x4a,0xb5,0x67,0xf7,0x56,0x95,0x64,0x05,0x48,0x79,0x8c,0xcb,0x58,0xa6, + 0x15,0x74,0x1d,0x7b,0xbd,0xa7,0xef,0x8a,0x9e,0x35,0x08,0xe4,0x22,0xf1,0x5a,0xb2, + 0x4d,0x3f,0xf4,0x58,0xfb,0xd5,0x91,0x65,0x49,0x4a,0x2b,0x2f,0x04,0xba,0xa9,0xd7, + 0x31,0x6a,0x0e,0xe2,0x4d,0x67,0x12,0xba,0x74,0x3a,0x55,0x4e,0x24,0xe2,0x1a,0x66, + 0x58,0x1e,0x52,0x08,0xef,0x68,0x84,0x75,0x67,0x15,0xdd,0xad,0xcf,0x9b,0x8d,0xbe, + 0x4e,0xfb,0x26,0xd9,0x7b,0xd4,0xae,0x88,0x8c,0xfe,0xb9,0x82,0xcf,0xce,0xed,0x54, + 0xd0,0x01,0xbf,0x32,0x05,0x64,0xce,0x58,0xd1,0x92,0x9b,0xcf,0xff,0xd0,0xa1,0xc7, + 0xda,0xcd,0xa0,0x4a,0x7a,0x85,0x98,0x6b,0x60,0x87,0x59,0xd9,0x96,0x52,0x3d,0x66, + 0x16,0xc3,0x3c,0x30,0xfd,0xd2,0xc5,0xeb,0xa7,0xda,0x9d,0x69,0xf2,0x47,0xf8,0x98, + 0x12,0x50,0xe9,0xa2,0x24,0xac,0x3d,0xaa,0xd8,0x7c,0x24,0xe3,0x33,0x9d,0x5e,0x78, + 0x68,0xd9,0x9c,0xc1,0x9f,0x75,0x75,0xca,0x06,0x93,0x80,0x0e,0xf5,0xd9,0x75,0xf8, + 0x20,0xc3,0xbd,0x3b,0xf1,0x2e,0x3e,0x1a,0x1a,0xb3,0x96,0xc9,0x94,0x9d,0x90,0xc2, + 0x30,0x50,0x23,0x9c,0xe1,0x58,0x4b,0x79,0xaa,0x93,0x8f,0xd3,0x9f,0xbe,0xb6,0x40, + 0xcc,0xa4,0xba,0x76,0x78,0xeb,0x02,0xbe,0xfd,0xc9,0x5e,0xfb,0x0b,0x56,0x80,0xc6, + 0x6e,0x95,0x76,0xdf,0x78,0x2b,0xc0,0x97,0xd0,0xa4,0x15,0xbc,0xcd,0x8c,0xf4,0xa2, + 0x03,0xa0,0x96,0x42,0xa0,0x84,0xac,0x97,0x0c,0x4f,0xdd,0x38,0xc8,0x6e,0xb4,0x7a, + 0xf4,0x0d,0xf0,0x3a,0x0b,0xef,0xb8,0x8c,0xfa,0x9a,0x1d,0x6f,0x12,0xdc,0x5d,0xe4, + 0x50,0x87,0x6b,0xd3,0x4b,0x6a,0x6c,0x20,0x2b,0xc0,0x26,0x43,0xc4,0xca,0x41,0x92, + 0xa3,0x77,0x8c,0x63,0x63,0xfc,0x53,0xae,0x64,0x7a,0x5b,0x7d,0x47,0x4b,0x2c,0x97, + 0x6b,0x6a,0x6a,0xe3,0x52,0x53,0x8f,0x9f,0x64,0x4a,0xa6,0x39,0xc4,0x12,0x6f,0xe6, + 0xd3,0x82,0xc8,0xd3,0x73,0x7b,0xdb,0x74,0x9f,0x58,0x19,0x9b,0x8a,0x67,0xdc,0x0f, + 0xa8,0xc8,0xdc,0x12,0xf6,0x45,0xef,0xe1,0x7c,0x06,0xe6,0xee,0xcb,0x65,0xde,0xea, + 0x8f,0x46,0xef,0xa7,0xb8,0xb7,0xa0,0x53,0x4a,0x3f,0xd0,0x98,0xf3,0x60,0x1b,0xa2, + 0x12,0xb7,0x34,0xcc,0x1b,0x19,0x7e,0xa8,0xae,0x23,0x61,0xa8,0xa3,0xaa,0x8e,0x81, + 0x6c,0xa6,0x7b,0x22,0x68,0x62,0xbc,0xf9,0xa6,0x49,0xaa,0x00,0x93,0xe9,0x67,0x2f, + 0x26,0xf2,0x38,0x51,0xb5,0x62,0xa0,0xd3,0xcc,0xb2,0x1a,0xf9,0x56,0x99,0x82,0xfe, + 0x18,0x96,0x19,0xab,0x8e,0x3f,0x2c,0x0f,0x23,0xc2,0x68,0xd0,0xba,0x2b,0x0f,0x0d, + 0x62,0x58,0x5b,0xce,0xbc,0xf3,0x44,0x1f,0x26,0x5e,0x9d,0x14,0x21,0xdd,0xe8,0x6a, + 0xea,0x37,0x9c,0x98,0x8b,0x37,0x65,0x0c,0x7c,0x97,0x7c,0x03,0x1f,0x79,0x73,0x52, + 0x5e,0x4e,0xfd,0xd6,0x6d,0x27,0xa8,0x89,0x88,0x62,0xa0,0x07,0x0d,0x16,0x21,0xb5, + 0x5a,0xae,0x99,0xe1,0x46,0xe9,0xa6,0x77,0xab,0xca,0x3e,0xa3,0xa7,0x91,0x3a,0xab, + 0x5b,0xff,0x57,0x25,0xa1,0x65,0xba,0x5a,0xbf,0x38,0x5e,0xff,0xfc,0x38,0xbc,0x26, + 0xc6,0x20,0x46,0xeb,0x97,0x13,0xc7,0xbd,0x91,0xb3,0xeb,0x77,0x06,0x9c,0xcf,0xda, + 0xcd,0xb8,0x47,0x15,0x42,0x02,0xae,0x1c,0xdf,0xf2,0x4b,0x64,0xf9,0xeb,0xb0,0x50, + 0x73,0x78,0x6a,0x1d,0x03,0xc2,0x35,0x0d,0x87,0x8a,0x41,0x18,0x94,0x72,0xab,0xd2, + 0x2b,0x76,0x7f,0x84,0x33,0xef,0x04,0x5d,0xb3,0x01,0x87,0xcd,0x3c,0xa0,0xd6,0x9e, + 0xbe,0x9c,0xd1,0xeb,0xd0,0xe5,0x3a,0xc6,0xeb,0xbd,0xc3,0x48,0x25,0x1d,0xd8,0x9e, + 0x20,0x17,0x64,0x43,0x2c,0x5c,0xc2,0x51,0x8e,0x6c,0xc3,0x37,0x6e,0x3d,0x19,0x0b, + 0xaa,0xbd,0x71,0xee,0x0c,0xd8,0xf6,0xff,0x8d,0xe4,0xba,0xf1,0x48,0xe6,0xb3,0x61, + 0xdc,0x7f,0x53,0x6f,0x93,0x1f,0x53,0xb3,0xc9,0xff,0x38,0x2c,0x2e,0xfb,0x23,0x5c, + 0xd3,0x86,0xd5,0x7f,0x62,0x4f,0x5c,0x55,0xb4,0x25,0xbd,0x23,0x27,0x35,0x09,0xc2, + 0x46,0x77,0x36,0x28,0xa7,0x87,0xeb,0x9b,0xca,0x39,0x7e,0x17,0xc5,0x4c,0xf8,0x82, + 0x77,0xb0,0x60,0x59,0x41,0xfd,0xbf,0x9d,0x1d,0x26,0xba,0xba,0xd9,0xe2,0x5a,0xc5, + 0x45,0x96,0x21,0x6e,0x89,0x54,0x16,0xdf,0x21,0x1f,0x2b,0x1a,0x6a,0x78,0xed,0x4e, + 0xe7,0xc6,0x01,0xaa,0xee,0x92,0x91,0x91,0xc1,0x3f,0x30,0xbe,0x73,0xdc,0x67,0xbb, + 0x9e,0x73,0x84,0x09,0xbb,0x64,0xdf,0xf4,0xcf,0xf8,0x1c,0x99,0x7a,0x9f,0x28,0x45, + 0xbe,0xcc,0xe6,0x44,0xe7,0xe6,0xfc,0x96,0x02,0x8d,0xc7,0x86,0x89,0x9c,0x30,0xed, + 0xe0,0xe3,0xf7,0xa4,0x9f,0xcb,0x65,0xda,0xe2,0xa4,0x96,0x10,0x18,0x04,0x44,0x08, + 0x46,0xa4,0x91,0x52,0xa1,0x55,0x24,0xe7,0xb4,0xdf,0x5f,0xdf,0x32,0xe5,0x36,0x3f, + 0x7e,0x34,0xd5,0x48,0x35,0x80,0x3a,0x46,0xd6,0x49,0x39,0x70,0x59,0x8e,0x5a,0x11, + 0x15,0x11,0xfa,0x34,0x51,0x81,0x9b,0x93,0x5e,0xe5,0x92,0x4f,0x40,0xa1,0xd8,0xeb, + 0x05,0xd4,0x46,0xb4,0xf0,0x88,0x7c,0x4a,0x27,0x5c,0x8c,0xb6,0xf0,0xb3,0x6b,0x98, + 0x17,0xd7,0x5a,0x75,0xe3,0xfa,0x31,0x87,0x2d,0x77,0x9a,0xad,0x12,0xfd,0xeb,0x76, + 0xeb,0xf1,0x9e,0x00,0x89,0xd7,0x1c,0xec,0xdf,0x6a,0xab,0x27,0x8c,0xa7,0x6e,0xc8, + 0x82,0x05,0xd5,0xa6,0xd7,0xa8,0xaf,0x68,0x8e,0x0d,0xff,0x99,0x85,0x89,0xcc,0x85, + 0xb8,0x7b,0xe7,0x8a,0x82,0x8b,0x56,0xac,0x4e,0x2c,0x2a,0x98,0xe5,0xd4,0x39,0x98, + 0x5a,0xe5,0x47,0x19,0xe7,0x74,0x6b,0x83,0x90,0x19,0x13,0xe5,0x7b,0x6a,0xa2,0xec, + 0xde,0x4b,0xc6,0xe0,0x80,0x2e,0x53,0x1f,0xcb,0x55,0x4b,0x5d,0xf6,0xa9,0x82,0xae, + 0x24,0x58,0x44,0xeb,0x8b,0x63,0xb9,0x68,0x8f,0x1b,0x86,0x05,0xbf,0x5f,0x5d,0x4c, + 0x21,0xd8,0xf5,0x4f,0xba,0x01,0x20,0x22,0xb0,0x16,0xb4,0x24,0xc3,0xf9,0x96,0x72, + 0x05,0x6e,0xfd,0x4b,0x2d,0xe3,0x16,0xc6,0xa6,0xf4,0x80,0xd1,0x62,0x4d,0x9e,0xc8, + 0x82,0xe0,0x76,0x68,0xe3,0xc9,0x8e,0xdc,0xf3,0x7a,0x4a,0x4f,0xd0,0xda,0xe1,0xf7, + 0x62,0x3e,0x1e,0x3d,0xdd,0xfa,0xff,0x01,0x5b,0x7a,0x20,0x3c,0x8c,0x05,0x02,0x00, }; const uint8_t WEBCONFIG_HTML_SUCCESS[] PROGMEM = { diff --git a/src/helpers/esp32/WebConfigServer.cpp b/src/helpers/esp32/WebConfigServer.cpp index 8b3f71608..5d1d6c336 100644 --- a/src/helpers/esp32/WebConfigServer.cpp +++ b/src/helpers/esp32/WebConfigServer.cpp @@ -13,6 +13,7 @@ static_assert(sizeof(WEBCONFIG_AP_PREFIX) <= 28, #include #include #include +#include #include #include #include @@ -2331,11 +2332,23 @@ void WebConfigServer::handleLogout(AsyncWebServerRequest* req) { req->send(res); } +static void webConfigRegulatorsSnapshot(JsonObject regulators) { + regulators["recovery"] = mesh::power::regulatorRecoveryAvailable(); + for (uint8_t domain = 0; domain < 2; ++domain) { + const bool mcu = domain == 0; + JsonObject entry = regulators.createNestedObject(mcu ? "mcu" : "radio"); + entry["modes"] = mesh::power::configuredRegulatorModes(mcu); + entry["requested"] = mesh::power::regulatorModeName(mesh::power::requestedRegulatorMode(mcu)); + entry["active"] = mesh::power::activeRegulatorModeName(mcu); + entry["fallback"] = mesh::power::regulatorFallbackActive(mcu); + } +} + void WebConfigServer::handleConfigGet(AsyncWebServerRequest* req) { if (_mode == MODE_OFF) { req->send(503); return; } if (!checkAuth(req)) { req->send(401, "application/json", "{\"error\":\"auth\"}"); return; } - DynamicJsonDocument doc(6144); + DynamicJsonDocument doc(6656); { WCLock lock(_mux); NodeSnapshot node = {}; @@ -2400,6 +2413,7 @@ void WebConfigServer::handleConfigGet(AsyncWebServerRequest* req) { #if defined(MESH_PRIMARY_ESPNOW) && MESH_PRIMARY_ESPNOW wifi["espnow_channel"] = mesh::wifi::loadConfiguredEspNowChannel(); #endif + webConfigRegulatorsSnapshot(doc.createNestedObject("regulators")); #ifdef WITH_MQTT_BRIDGE MQTTPrefs* obs = static_cast(_mqtt_prefs); diff --git a/src/helpers/ota/OtaApply.cpp b/src/helpers/ota/OtaApply.cpp index 610a25cf4..aaa6be2a2 100644 --- a/src/helpers/ota/OtaApply.cpp +++ b/src/helpers/ota/OtaApply.cpp @@ -18,6 +18,7 @@ #include "OtaSelf.h" // SelfFwInfo / ota_self_firmware (running-image base_hash gate) #endif #elif defined(NRF52_PLATFORM) + extern "C" void meshRegulatorCleanReset() __attribute__((weak)); #include "OtaVerify.h" #include "OtaSelf.h" #include "OtaFlashLayout_nrf52.h" @@ -498,6 +499,7 @@ static bool ota_nrf52_clear_reset_reasons() { } void ota_reboot_to_apply() { // public: set the apply magic + reset (does not return) + if (meshRegulatorCleanReset) meshRegulatorCleanReset(); uint8_t stage_handoff = GPREGRET2_OTA_STAGE_LEGACY; #if defined(OTA_RAK_AUTO_STORE) || defined(OTA_TOWER_AUTO_STORE) if (g_nrf52_apply_store) { @@ -546,6 +548,7 @@ void ota_reboot_to_apply() { // public: set the apply magic + } void ota_reboot_to_bootloader_update() { + if (meshRegulatorCleanReset) meshRegulatorCleanReset(); uint8_t source = GPREGRET2_OTA_STAGE_QSPI; #if defined(OTA_INTERNAL_BOOTLOADER_UPDATE) source = GPREGRET2_OTA_STAGE_EXPANDED; diff --git a/src/helpers/radiolib/CustomLR1110.h b/src/helpers/radiolib/CustomLR1110.h index 4fa190392..5a45433da 100644 --- a/src/helpers/radiolib/CustomLR1110.h +++ b/src/helpers/radiolib/CustomLR1110.h @@ -1,6 +1,7 @@ #pragma once #include +#include "RadioRegulatorState.h" #include "MeshCore.h" #include "RXPowerSaving.h" #include "LR1110RxRecovery.h" @@ -19,6 +20,9 @@ #endif class CustomLR1110 : public LR1110 { + // Existing LR11xx recipes already require the fitted DC/DC network. + mesh::power::RadioRegulatorState _regulator{mesh::power::REGULATOR_DCDC | mesh::power::REGULATOR_LDO, + mesh::power::RegulatorMode::Dcdc}; uint32_t _preambleMillis = 66; uint32_t _maxPayloadMillis = 3934; uint32_t _activityAt = 0; @@ -33,6 +37,11 @@ class CustomLR1110 : public LR1110 { public: CustomLR1110(Module *mod) : LR1110(mod) { } + uint8_t regulatorModes() const { return _regulator.modes(); } + mesh::power::RegulatorMode defaultRegulatorMode() const { return _regulator.defaultMode(); } + bool configureBootRegulator(mesh::power::RegulatorMode mode) { return _regulator.configureBoot(mode); } + mesh::power::RegulatorMode activeRegulatorMode() const { return _regulator.activeMode(); } + void setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]) { _morse_rf_switch.capture(this->mod, pins, table); @@ -40,12 +49,14 @@ class CustomLR1110 : public LR1110 { } int16_t beginMorseReceive(float frequency_mhz) { + const auto regulator = _regulator.beginInitialization(); _profileSwitch.invalidate(); _profilePacketDirty = false; int16_t status = LR1110::beginGFSK(frequency_mhz, mesh::MorseRx::ReceiverBitRateKbps, 0.6f, 4.8f, 2, 16, tcxoVoltage); if (status == RADIOLIB_ERR_NONE) status = applyMeshCoreTcxoDelay(); - if (status == RADIOLIB_ERR_NONE) status = setRegulatorDCDC(); + if (status == RADIOLIB_ERR_NONE) status = regulator == mesh::power::RegulatorMode::Ldo + ? setRegulatorLDO() : setRegulatorDCDC(); if (status == RADIOLIB_ERR_NONE) status = _morse_rf_switch.restore( [this](uint8_t enable, const uint8_t* modes) { return setDioAsRfSwitch(enable, modes[0], modes[1], modes[2], @@ -60,7 +71,7 @@ class CustomLR1110 : public LR1110 { } // Infinite continuous RX samples envelope power independently of the // FSK packet detector; no direct-data pin or TX/PA activation is used. - return status; + return _regulator.finishInitialization(status); } void setProfileSwitchOptimization(bool enabled) { @@ -233,14 +244,16 @@ class CustomLR1110 : public LR1110 { int16_t begin(float freq = 434.0, float bw = 125.0, uint8_t sf = 9, uint8_t cr = 7, uint8_t syncWord = RADIOLIB_LR11X0_LORA_SYNC_WORD_PRIVATE, int8_t power = 10, uint16_t preambleLength = 8, float tcxoVoltage = 1.6) { + const auto regulator = _regulator.beginInitialization(); _profileSwitch.invalidate(); _profilePacketDirty = false; int16_t state = LR1110::begin(freq, bw, sf, cr, syncWord, power, preambleLength, tcxoVoltage); if (state == RADIOLIB_ERR_NONE) state = applyMeshCoreTcxoDelay(); - // RadioLib begin() defaults to LDO; use the LR1110 DC/DC regulator. - if (state == RADIOLIB_ERR_NONE) state = setRegulatorDCDC(); - return state; + // Native begin() resets to LDO; restore the boot choice on every reset. + if (state == RADIOLIB_ERR_NONE) state = regulator == mesh::power::RegulatorMode::Ldo + ? setRegulatorLDO() : setRegulatorDCDC(); + return _regulator.finishInitialization(state); } int16_t applyMeshCoreTcxoDelay() { diff --git a/src/helpers/radiolib/CustomLR1110Wrapper.h b/src/helpers/radiolib/CustomLR1110Wrapper.h index 641a7d47d..6930c2c24 100644 --- a/src/helpers/radiolib/CustomLR1110Wrapper.h +++ b/src/helpers/radiolib/CustomLR1110Wrapper.h @@ -13,6 +13,16 @@ class CustomLR1110Wrapper : public RadioLibWrapper { DeepInitCallback _deep_init; public: + uint8_t regulatorModes() const override { return static_cast(_radio)->regulatorModes(); } + mesh::power::RegulatorMode defaultRegulatorMode() const override { + return static_cast(_radio)->defaultRegulatorMode(); + } + bool configureBootRegulator(mesh::power::RegulatorMode mode) override { + return static_cast(_radio)->configureBootRegulator(mode); + } + mesh::power::RegulatorMode activeRegulatorMode() const override { + return static_cast(_radio)->activeRegulatorMode(); + } ~CustomLR1110Wrapper() { unregisterInterruptAction(); } CustomLR1110Wrapper(CustomLR1110& radio, mesh::MainBoard& board) : RadioLibWrapper(radio, board), _deep_init(NULL) { } diff --git a/src/helpers/radiolib/CustomLR1121.h b/src/helpers/radiolib/CustomLR1121.h index 73106cb0f..e8c05fd3f 100644 --- a/src/helpers/radiolib/CustomLR1121.h +++ b/src/helpers/radiolib/CustomLR1121.h @@ -1,11 +1,15 @@ #pragma once #include +#include "RadioRegulatorState.h" #include "MeshCore.h" #include "LR11x0MorseRfSwitch.h" #include "../MorseRx.h" class CustomLR1121 : public LR1121 { + // Existing LR11xx recipes already require the fitted DC/DC network. + mesh::power::RadioRegulatorState _regulator{mesh::power::REGULATOR_DCDC | mesh::power::REGULATOR_LDO, + mesh::power::RegulatorMode::Dcdc}; uint32_t _preambleMillis = 66; uint32_t _maxPayloadMillis = 3934; uint32_t _activityAt = 0; @@ -18,6 +22,11 @@ class CustomLR1121 : public LR1121 { public: CustomLR1121(Module *mod) : LR1121(mod) { } + uint8_t regulatorModes() const { return _regulator.modes(); } + mesh::power::RegulatorMode defaultRegulatorMode() const { return _regulator.defaultMode(); } + bool configureBootRegulator(mesh::power::RegulatorMode mode) { return _regulator.configureBoot(mode); } + mesh::power::RegulatorMode activeRegulatorMode() const { return _regulator.activeMode(); } + int16_t setProfileProtocol(uint8_t syncWord) { int16_t status = LR1121::setSyncWord(syncWord); if (status == RADIOLIB_ERR_NONE) status = LR1121::setCRC(2); @@ -33,9 +42,11 @@ class CustomLR1121 : public LR1121 { } int16_t beginMorseReceive(float frequency_mhz) { + const auto regulator = _regulator.beginInitialization(); int16_t status = LR1121::beginGFSK(frequency_mhz, mesh::MorseRx::ReceiverBitRateKbps, 0.6f, 4.8f, 2, 16, tcxoVoltage); - if (status == RADIOLIB_ERR_NONE) status = setRegulatorDCDC(); + if (status == RADIOLIB_ERR_NONE) status = regulator == mesh::power::RegulatorMode::Ldo + ? setRegulatorLDO() : setRegulatorDCDC(); if (status == RADIOLIB_ERR_NONE) status = _morse_rf_switch.restore( [this](uint8_t enable, const uint8_t* modes) { return setDioAsRfSwitch(enable, modes[0], modes[1], modes[2], @@ -46,17 +57,19 @@ class CustomLR1121 : public LR1121 { syncWordLength = preambleDetLength = 0; status = LR1121::setCRC(0); } - return status; + return _regulator.finishInitialization(status); } int16_t begin(float freq = 434.0, float bw = 125.0, uint8_t sf = 9, uint8_t cr = 7, uint8_t syncWord = RADIOLIB_LR11X0_LORA_SYNC_WORD_PRIVATE, int8_t power = 10, uint16_t preambleLength = 8, float tcxoVoltage = 1.6) { + const auto regulator = _regulator.beginInitialization(); int16_t state = LR1121::begin(freq, bw, sf, cr, syncWord, power, preambleLength, tcxoVoltage); - // RadioLib begin() defaults to LDO; use the LR1121 DC/DC regulator. - if (state == RADIOLIB_ERR_NONE) state = setRegulatorDCDC(); - return state; + // Native begin() resets to LDO; restore the boot choice on every reset. + if (state == RADIOLIB_ERR_NONE) state = regulator == mesh::power::RegulatorMode::Ldo + ? setRegulatorLDO() : setRegulatorDCDC(); + return _regulator.finishInitialization(state); } size_t getPacketLength(bool update) override { diff --git a/src/helpers/radiolib/CustomLR1121Wrapper.h b/src/helpers/radiolib/CustomLR1121Wrapper.h index dd1294a17..bc79b25ff 100644 --- a/src/helpers/radiolib/CustomLR1121Wrapper.h +++ b/src/helpers/radiolib/CustomLR1121Wrapper.h @@ -8,6 +8,16 @@ class CustomLR1121Wrapper : public RadioLibWrapper { using DeepInitCallback = bool (*)(); DeepInitCallback _deep_init = nullptr; public: + uint8_t regulatorModes() const override { return static_cast(_radio)->regulatorModes(); } + mesh::power::RegulatorMode defaultRegulatorMode() const override { + return static_cast(_radio)->defaultRegulatorMode(); + } + bool configureBootRegulator(mesh::power::RegulatorMode mode) override { + return static_cast(_radio)->configureBootRegulator(mode); + } + mesh::power::RegulatorMode activeRegulatorMode() const override { + return static_cast(_radio)->activeRegulatorMode(); + } ~CustomLR1121Wrapper() { unregisterInterruptAction(); } CustomLR1121Wrapper(CustomLR1121& radio, mesh::MainBoard& board) : RadioLibWrapper(radio, board) { } bool supportsMorseTx() const override { return true; } diff --git a/src/helpers/radiolib/CustomLR2021.h b/src/helpers/radiolib/CustomLR2021.h index 552365627..65052727d 100644 --- a/src/helpers/radiolib/CustomLR2021.h +++ b/src/helpers/radiolib/CustomLR2021.h @@ -1,6 +1,7 @@ #pragma once #include +#include "RadioRegulatorState.h" #include "MeshCore.h" #include "LR2021Band.h" #include "../MorseRx.h" @@ -21,6 +22,13 @@ #endif class CustomLR2021 : public LR2021 { +#if LR2021_USE_DCDC + mesh::power::RadioRegulatorState _regulator{mesh::power::REGULATOR_DCDC | mesh::power::REGULATOR_LDO, + mesh::power::RegulatorMode::Dcdc}; +#else + // An LDO-only layout must not enable SIMO without its external inductor. + mesh::power::RadioRegulatorState _regulator{mesh::power::REGULATOR_LDO, mesh::power::RegulatorMode::Ldo}; +#endif uint32_t _preambleMillis = 66; uint32_t _maxPayloadMillis = 3934; uint32_t _activityAt = 0; @@ -130,6 +138,11 @@ class CustomLR2021 : public LR2021 { public: CustomLR2021(Module *mod) : LR2021(mod) { irqDioNum = LR2021_IRQ_DIO; } + uint8_t regulatorModes() const { return _regulator.modes(); } + mesh::power::RegulatorMode defaultRegulatorMode() const { return _regulator.defaultMode(); } + bool configureBootRegulator(mesh::power::RegulatorMode mode) { return _regulator.configureBoot(mode); } + mesh::power::RegulatorMode activeRegulatorMode() const { return _regulator.activeMode(); } + #if LR2021_TX_PREARM_MS > 0 using LR2021::standby; int16_t standby() override { @@ -164,13 +177,16 @@ class CustomLR2021 : public LR2021 { } int16_t beginMorseReceive(float frequency_mhz) { + const auto regulator = _regulator.beginInitialization(); const uint8_t gain = mesh::lr2021::isHighBand(frequency_mhz) ? gainModeHf : gainModeLf; int16_t status = LR2021::beginGFSK(frequency_mhz, mesh::MorseRx::ReceiverBitRateKbps, 0.6f, 4.8f, 2, 16, tcxoVoltage); - // Native modem initialization resets the regulator to LDO. Verified - // SIMO boards must restore DC/DC before admitting RX after any reset. + // Native initialization resets to LDO. SIMO is allowed only on verified + // layouts; an explicit LDO choice on those boards is checked as well. + if (status == RADIOLIB_ERR_NONE && regulator == mesh::power::RegulatorMode::Dcdc) + status = setRegulatorDCDC(); #if LR2021_USE_DCDC - if (status == RADIOLIB_ERR_NONE) status = setRegulatorDCDC(); + else if (status == RADIOLIB_ERR_NONE) status = setRegulatorLDO(); #endif if (status == RADIOLIB_ERR_NONE) status = restoreRfSwitchTable(); if (status == RADIOLIB_ERR_NONE) status = LR2021::setRxBoostedGainMode(gain); @@ -183,10 +199,11 @@ class CustomLR2021 : public LR2021 { status = LR2021::setCRC(0); } // launchMode() retains this chip's band-aware RX RF switch selection. - return status; + return _regulator.finishInitialization(status); } bool std_init(SPIClass* spi = NULL) { + const auto regulator = _regulator.beginInitialization(); #ifdef LR2021_TCXO_VOLTAGE const float tcxo = LR2021_TCXO_VOLTAGE; #else @@ -220,15 +237,16 @@ class CustomLR2021 : public LR2021 { if (status != RADIOLIB_ERR_NONE) { mesh::usbLoggingPort().print("ERROR: radio init failed: "); mesh::usbLoggingPort().println(status); + _regulator.finishInitialization(status); return false; // fail } + // Also reached when restoring LoRa after Morse RX or hard recovery. + if (regulator == mesh::power::RegulatorMode::Dcdc) status = setRegulatorDCDC(); #if LR2021_USE_DCDC - // Also reached by radioDeepInit() when restoring LoRa after Morse RX. - // Check this before later setters can overwrite a regulator error. - status = setRegulatorDCDC(); - if (status != RADIOLIB_ERR_NONE) return false; + else status = setRegulatorLDO(); #endif + if (_regulator.finishInitialization(status) != RADIOLIB_ERR_NONE) return false; status = setCRC(2); if (status != RADIOLIB_ERR_NONE) return false; diff --git a/src/helpers/radiolib/CustomLR2021Wrapper.h b/src/helpers/radiolib/CustomLR2021Wrapper.h index 0aba6a403..b1a105efc 100644 --- a/src/helpers/radiolib/CustomLR2021Wrapper.h +++ b/src/helpers/radiolib/CustomLR2021Wrapper.h @@ -16,6 +16,16 @@ class CustomLR2021Wrapper : public RadioLibWrapper { public: + uint8_t regulatorModes() const override { return static_cast(_radio)->regulatorModes(); } + mesh::power::RegulatorMode defaultRegulatorMode() const override { + return static_cast(_radio)->defaultRegulatorMode(); + } + bool configureBootRegulator(mesh::power::RegulatorMode mode) override { + return static_cast(_radio)->configureBootRegulator(mode); + } + mesh::power::RegulatorMode activeRegulatorMode() const override { + return static_cast(_radio)->activeRegulatorMode(); + } ~CustomLR2021Wrapper() { unregisterInterruptAction(); } CustomLR2021Wrapper(CustomLR2021& radio, mesh::MainBoard& board) : RadioLibWrapper(radio, board) { } bool supportsMorseTx() const override { return true; } diff --git a/src/helpers/radiolib/CustomSX1262.h b/src/helpers/radiolib/CustomSX1262.h index ebe3156e0..624353009 100644 --- a/src/helpers/radiolib/CustomSX1262.h +++ b/src/helpers/radiolib/CustomSX1262.h @@ -1,6 +1,7 @@ #pragma once #include +#include "RadioRegulatorState.h" #include #include "MeshCore.h" #include "RXPowerSaving.h" @@ -39,6 +40,12 @@ #endif class CustomSX1262 : public SX1262 { +#if defined(SX126X_USE_REGULATOR_LDO) && SX126X_USE_REGULATOR_LDO + mesh::power::RadioRegulatorState _regulator{mesh::power::REGULATOR_LDO, mesh::power::RegulatorMode::Ldo}; +#else + mesh::power::RadioRegulatorState _regulator{mesh::power::REGULATOR_DCDC | mesh::power::REGULATOR_LDO, + mesh::power::RegulatorMode::Dcdc}; +#endif uint32_t _preambleMillis = 66; uint32_t _maxPayloadMillis = 3934; uint32_t _activityAt = 0; @@ -52,6 +59,11 @@ class CustomSX1262 : public SX1262 { public: CustomSX1262(Module *mod) : SX1262(mod) { } + + uint8_t regulatorModes() const { return _regulator.modes(); } + mesh::power::RegulatorMode defaultRegulatorMode() const { return _regulator.defaultMode(); } + bool configureBootRegulator(mesh::power::RegulatorMode mode) { return _regulator.configureBoot(mode); } + mesh::power::RegulatorMode activeRegulatorMode() const { return _regulator.activeMode(); } void invalidateMorseModemCache() { _profileSwitch.invalidate(); _coldStandby = true; @@ -296,6 +308,10 @@ class CustomSX1262 : public SX1262 { uint8_t syncWord = RADIOLIB_SX126X_SYNC_WORD_PRIVATE, int8_t power = 10, uint16_t preambleLength = 8, float tcxoVoltage = 1.6, bool useRegulatorLDO = false) { + useRegulatorLDO = _regulator.beginInitialization(useRegulatorLDO + ? mesh::power::RegulatorMode::Ldo : mesh::power::RegulatorMode::Dcdc) + == mesh::power::RegulatorMode::Ldo; + MESH_DEBUG_PRINTLN("SX1262 regulator requested: %s", useRegulatorLDO ? "LDO" : "DC-DC"); _profileSwitch.invalidate(); // A held dual-profile oscillator must not be selected during reset or // setup, before DIO3/TCXO configuration has been restored. Restore the @@ -309,7 +325,20 @@ class CustomSX1262 : public SX1262 { tcxoVoltage, useRegulatorLDO); if (state == RADIOLIB_ERR_NONE) state = applyMeshCoreTcxoDelay(); standbyXOSC = savedStandbyXosc; - return state; + return _regulator.finishInitialization(state); + } + + // The GFSK reset used by Morse must retain the same boot choice and must + // invalidate reported active state when native initialization fails. + int16_t beginFSK(float freq = 434.0, float br = 4.8, float freqDev = 5.0, + float rxBw = 156.2, int8_t power = 10, uint16_t preambleLength = 16, + float tcxoVoltage = 1.6, bool useRegulatorLDO = false) override { + useRegulatorLDO = _regulator.beginInitialization(useRegulatorLDO + ? mesh::power::RegulatorMode::Ldo : mesh::power::RegulatorMode::Dcdc) + == mesh::power::RegulatorMode::Ldo; + const int16_t status = SX1262::beginFSK(freq, br, freqDev, rxBw, power, + preambleLength, tcxoVoltage, useRegulatorLDO); + return _regulator.finishInitialization(status); } // Read tcxoVoltage back from the chip object rather than from the argument: @@ -379,8 +408,6 @@ class CustomSX1262 : public SX1262 { constexpr bool useRegulatorLDO = false; #endif - MESH_DEBUG_PRINTLN("SX1262 regulator requested: %s", useRegulatorLDO ? "LDO" : "DC-DC"); - #if defined(STATION_G3_ESP32) // Reinitialization/watchdog recovery must keep the boot-selected slot; // the build's historical slot macros are not the live SPI routing. diff --git a/src/helpers/radiolib/CustomSX1262Wrapper.h b/src/helpers/radiolib/CustomSX1262Wrapper.h index fc55d2040..7bbca4c80 100644 --- a/src/helpers/radiolib/CustomSX1262Wrapper.h +++ b/src/helpers/radiolib/CustomSX1262Wrapper.h @@ -37,6 +37,16 @@ protected: } public: + uint8_t regulatorModes() const override { return static_cast(_radio)->regulatorModes(); } + mesh::power::RegulatorMode defaultRegulatorMode() const override { + return static_cast(_radio)->defaultRegulatorMode(); + } + bool configureBootRegulator(mesh::power::RegulatorMode mode) override { + return static_cast(_radio)->configureBootRegulator(mode); + } + mesh::power::RegulatorMode activeRegulatorMode() const override { + return static_cast(_radio)->activeRegulatorMode(); + } ~CustomSX1262Wrapper() { unregisterInterruptAction(); } CustomSX1262Wrapper(CustomSX1262& radio, mesh::MainBoard& board) : RadioLibWrapper(radio, board) { } bool supportsCarrierWave() const override { return true; } diff --git a/src/helpers/radiolib/RadioRegulatorState.h b/src/helpers/radiolib/RadioRegulatorState.h new file mode 100644 index 000000000..96f785a18 --- /dev/null +++ b/src/helpers/radiolib/RadioRegulatorState.h @@ -0,0 +1,46 @@ +#pragma once + +#include + +namespace mesh { namespace power { + +// A boot selection never writes the radio. Once initialization starts, freeze +// it so recovery and temporary modem changes cannot apply a pending CLI edit. +class RadioRegulatorState { + const uint8_t _modes; + const RegulatorMode _default; + RegulatorMode _requested = RegulatorMode::Default; + RegulatorMode _effective = RegulatorMode::Default; + RegulatorMode _active = RegulatorMode::Default; + bool _started = false; + +public: + RadioRegulatorState(uint8_t modes, RegulatorMode default_mode) + : _modes(modes), _default(default_mode) { } + + uint8_t modes() const { return _modes; } + RegulatorMode defaultMode() const { return _default; } + RegulatorMode activeMode() const { return _active; } + + bool configureBoot(RegulatorMode mode) { + if (_started || !regulatorModeSupported(_modes, mode)) return false; + _requested = mode; + return true; + } + + RegulatorMode beginInitialization(RegulatorMode legacy_default = RegulatorMode::Default) { + _started = true; + _active = RegulatorMode::Default; // no successful application in this init yet + const RegulatorMode fallback = regulatorModeSupported(_modes, legacy_default) + && legacy_default != RegulatorMode::Default ? legacy_default : _default; + _effective = _requested == RegulatorMode::Default ? fallback : _requested; + return _effective; + } + + int16_t finishInitialization(int16_t status) { + _active = status == 0 ? _effective : RegulatorMode::Default; + return status; + } +}; + +}} // namespace mesh::power diff --git a/test/fixtures/morse_rx_native.cpp b/test/fixtures/morse_rx_native.cpp index 227ece498..faaa1705a 100644 --- a/test/fixtures/morse_rx_native.cpp +++ b/test/fixtures/morse_rx_native.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #define RADIOLIB_ERR_NONE 0 #define RADIOLIB_ERR_UNKNOWN -16 #define RADIOLIB_NC 0xffffffffU @@ -74,6 +75,7 @@ struct Native { } int16_t applyMeshCoreTcxoDelay() { return call(2); } int16_t setRegulatorDCDC() { return call(3); } + int16_t setRegulatorLDO() { return call(3); } int16_t setDioAsRfSwitch(uint8_t mask,uint8_t a,uint8_t b,uint8_t c,uint8_t d,uint8_t e,uint8_t f,uint8_t g) { enable=mask; const uint8_t values[]={a,b,c,d,e,f,g}; memcpy(modes,values,sizeof(modes)); return call(4); @@ -112,17 +114,20 @@ using LR1110=Native; using LR1121=Native; struct LR2021 : Native { enum { MODE_RX=3,MODE_RX_HF=6,MODE_END_OF_TABLE=0 }; }; using SX1276=Native; struct LR1110Probe : LR1110 { + @LR1110_REGULATOR@ struct State { unsigned invalidations=0; void invalidate() { ++invalidations; } } _profileSwitch; bool _profilePacketDirty=true,_rx_boosted=true; LR11x0MorseRfSwitch _morse_rf_switch; @LR1110@ }; struct LR1121Probe : LR1121 { + @LR1121_REGULATOR@ bool _rx_boosted=true; LR11x0MorseRfSwitch _morse_rf_switch; @LR1121@ }; struct LR2021Probe : LR2021 { + @LR2021_REGULATOR@ uint8_t gainModeLf=1,gainModeHf=3; uint32_t _rf_switch_pins[Module::RFSWITCH_MAX_PINS]={0x80,0x81,RADIOLIB_NC}; const Module::RfSwitchMode_t* _rf_switch_table=nullptr; diff --git a/test/fixtures/nrf52_usb_console/test_console.cpp b/test/fixtures/nrf52_usb_console/test_console.cpp index d779d0766..1362d0622 100644 --- a/test/fixtures/nrf52_usb_console/test_console.cpp +++ b/test/fixtures/nrf52_usb_console/test_console.cpp @@ -14,6 +14,7 @@ MockNrfUsbd mock_usbd; static bool mounted = true, dtr = true, dfu = false; static bool attached = true, armed_in = false; static unsigned detaches = 0, attaches = 0; +static unsigned clean_reboots = 0; static uint32_t baud = 115200; static std::string fifo, host; static std::function during_write; @@ -47,7 +48,11 @@ uint32_t tud_cdc_n_write(uint8_t n, const void* data, uint32_t size) { uint32_t tud_cdc_n_write_flush(uint8_t n) { assert(n == 0); return 0; } uint32_t tud_cdc_n_write_clear(uint8_t n) { assert(n == 0); fifo.clear(); return 0; } void tud_cdc_get_line_coding(cdc_line_coding_t* coding) { coding->bit_rate = baud; } -void TinyUSB_Port_EnterDFU() { dfu = true; } +extern "C" void meshRegulatorCleanReset() { ++clean_reboots; } +void TinyUSB_Port_EnterDFU() { + assert(clean_reboots == 1); // Mark the actual reset before entering the core. + dfu = true; +} static void service() { mesh::serviceUsbLoggingPort(); @@ -169,8 +174,14 @@ int main() { drain(); assert(host.empty()); // old armed packet cannot leak into a new handle - baud = 1200; dtr = false; + assert(clean_reboots == 0); // Normal host closes/reconnects remain armed. + baud = 1200; + tud_cdc_line_coding_cb(0, nullptr); + tud_cdc_line_state_cb(0, true, false); + tud_cdc_line_state_cb(1, false, false); + assert(clean_reboots == 0 && !dfu); // Neither coding nor CDC1 requests DFU. + dtr = false; tud_cdc_line_state_cb(0, false, false); - assert(dfu); // Existing bootloader entry is preserved. + assert(dfu && clean_reboots == 1); // Existing bootloader entry is preserved. puts("native nRF52 console transport passed"); } diff --git a/test/fixtures/ota_apply_reentry.cpp b/test/fixtures/ota_apply_reentry.cpp index fd30d0a6e..a8e6d00ca 100644 --- a/test/fixtures/ota_apply_reentry.cpp +++ b/test/fixtures/ota_apply_reentry.cpp @@ -1,3 +1,4 @@ +extern "C" void meshRegulatorCleanReset() __attribute__((weak)); #include #include diff --git a/test/fixtures/ota_dev_resume.cpp b/test/fixtures/ota_dev_resume.cpp index a69a449f6..11cd911b8 100644 --- a/test/fixtures/ota_dev_resume.cpp +++ b/test/fixtures/ota_dev_resume.cpp @@ -1,3 +1,4 @@ +extern "C" void meshRegulatorCleanReset() __attribute__((weak)); #include #include #include diff --git a/test/fixtures/regulator_settings_native.cpp b/test/fixtures/regulator_settings_native.cpp new file mode 100644 index 000000000..687fa331a --- /dev/null +++ b/test/fixtures/regulator_settings_native.cpp @@ -0,0 +1,268 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +uint32_t mock_now=0; +#if defined(ESP32) +#include +int mock_reset_reason=ESP_RST_POWERON; +#elif defined(RP2040_PLATFORM) +bool mock_watchdog_enabled=false,mock_watchdog_any=false; +#else +namespace mesh { namespace power { +volatile RecoveryRecord test_retained; +ResetKind test_reset=ResetKind::Cold; +volatile RecoveryRecord& platformRecoveryRecord() { return test_retained; } +ResetKind platformResetKind() { return test_reset; } +bool platformRecoverySupported() { return true; } +unsigned configured_percent_calls=0; +uint8_t configuredBatteryPercent(uint16_t mv) { + ++configured_percent_calls; + return mv<=3000 ? 0 : mv>=4200 ? 100 : uint8_t((mv-3000)*100/1200); +} +}} +#endif +#if !defined(NRF52_PLATFORM) +#include +#endif +#include +using namespace mesh::power; +static void retainedClear() { + volatile uint8_t* p=reinterpret_cast(&platformRecoveryRecord()); + for(size_t i=0;i #include #include +#include @POLICY@ constexpr bool ExpectDcdc = @EXPECT_DCDC@; static_assert((LR2021_USE_DCDC != 0)==ExpectDcdc,"unexpected board regulator default"); @@ -103,6 +105,9 @@ class LR2021 { int16_t setRegulatorDCDC() { ++regulator_calls;const int16_t result=step(2);if(!result)regulator_on=true;return result; } + int16_t setRegulatorLDO() { + ++regulator_calls;const int16_t result=step(2);if(!result)regulator_on=false;return result; + } int16_t setCRC(uint8_t value) { assert(value==0 || value==2);return step(3); } int16_t explicitHeader() { return step(4); } int16_t setRxBoostedGainMode(uint8_t value) { gain=value;return step(5); } @@ -117,6 +122,7 @@ class LR2021 { int16_t setSyncWord(uint8_t*,size_t length) { assert(length==0);return step(8); } }; class CustomLR2021:public LR2021 { + @REGULATOR@ uint32_t _rf_switch_pins[Module::RFSWITCH_MAX_PINS]={}; const Module::RfSwitchMode_t* _rf_switch_table=nullptr; @ROUTING@ @@ -154,6 +160,27 @@ static void routed(const CustomLR2021& radio) { assert(radio.pulls[0]==1 && radio.pulls[1]==0); } int main() { + using mesh::power::RegulatorMode; + Module selection_module; + CustomLR2021 selected(&selection_module);configure(selected); + assert(selected.activeRegulatorMode()==RegulatorMode::Default && selected.calls.empty()); + assert(!selected.configureBootRegulator(static_cast(3))); + assert(selected.configureBootRegulator(RegulatorMode::Dcdc)==ExpectDcdc); + assert(selected.configureBootRegulator(RegulatorMode::Ldo)); + assert(selected.calls.empty()); // selecting never touches SPI + assert(selected.std_init() && !selected.regulator_on); + assert(selected.activeRegulatorMode()==RegulatorMode::Ldo); + assert(!selected.configureBootRegulator(RegulatorMode::Default)); + assert(selected.beginMorseReceive(2440.0f)==0 && !selected.regulator_on); + assert(selected.activeRegulatorMode()==RegulatorMode::Ldo); + assert(selected.std_init() && !selected.regulator_on); // recovery stays LDO + selected.fail=ExpectDcdc?2:1; + assert(!selected.std_init()); + assert(selected.activeRegulatorMode()==RegulatorMode::Default); + assert(!selected.configureBootRegulator(RegulatorMode::Dcdc)); + selected.fail=0; + assert(selected.std_init() && !selected.regulator_on); + assert(selected.activeRegulatorMode()==RegulatorMode::Ldo); // Only verified/opted-in layouts reapply DC/DC after a native reset. Module module;CustomLR2021 radio(&module);configure(radio);SPIClass spi; assert(radio.std_init(&spi) && spi.started && radio.regulator_on==ExpectDcdc); @@ -225,6 +252,7 @@ class LR2021PowerTest(unittest.TestCase): self.assertIsNotNone(policy, "LR2021 board policy must remain explicit and default-safe") for marker, body in { "@POLICY@": policy.group(0), + "@REGULATOR@": regulator_members(driver), "@EXPECT_DCDC@": "true" if "-DLR2021_USE_DCDC=1" in flags else "false", "@ROUTING@": method(driver, "int16_t restoreRfSwitchTable("), "@TABLE@": method(driver, "void setRfSwitchTable("), diff --git a/test/test_lr2021_tx_prearm.py b/test/test_lr2021_tx_prearm.py index c36af799a..43e87a454 100644 --- a/test/test_lr2021_tx_prearm.py +++ b/test/test_lr2021_tx_prearm.py @@ -11,6 +11,7 @@ import shutil import subprocess import tempfile import unittest +from radio_regulator_harness import regulator_members ROOT = Path(__file__).resolve().parents[1] @@ -34,6 +35,7 @@ HARNESS = r''' #include #include #include +#include @POLICY@ #define LR2021_TX_BUSY_TIMEOUT_MS 4UL #define LR2021_USE_DCDC 0 @@ -195,6 +197,7 @@ public: int16_t begin(float,float,uint8_t,uint8_t,uint8_t,int8_t,uint16_t,float) { std::fill(masks,masks+7,0);applyMode(MODE_STBY);return 0; } + int16_t setRegulatorDCDC() { assert(false); return -1; } int16_t setCRC(uint8_t) { return 0; } int16_t explicitHeader() { return 0; } int16_t clearRxFifo() { return 0; } @@ -203,6 +206,7 @@ public: } }; class CustomLR2021:public LR2021 { + @REGULATOR@ public: using LR2021::LR2021; uint32_t _rf_switch_pins[Module::RFSWITCH_MAX_PINS]={}; @@ -369,7 +373,7 @@ class LR2021TxPrearmTest(unittest.TestCase): cls.binaries = {} driver = (ROOT / "src/helpers/radiolib/CustomLR2021.h").read_text() board = (ROOT / "variants/meshnology_w12/target.cpp").read_text() - source = HARNESS + source = HARNESS.replace("@REGULATOR@", regulator_members(driver)) for marker, signature in { "@MASK@": "int16_t setTxStandbyMask(", "@PREPARE@": "int16_t prepareTxRfSwitch(", diff --git a/test/test_morse_rx.py b/test/test_morse_rx.py index 4ca8d1285..c4ec38954 100644 --- a/test/test_morse_rx.py +++ b/test/test_morse_rx.py @@ -6,6 +6,7 @@ from test_morse_tx import compile_run, portable_radio_header from test_carrier_wave import production_harness from test_radio_receive_contract import method from morse_rx_floor_step_experiment import legacy_estimator +from radio_regulator_harness import regulator_members ROOT = Path(__file__).resolve().parents[1] @@ -302,6 +303,8 @@ int main() { for chip in ("LR1110", "LR1121", "LR2021", "SX1276"): source = (ROOT / f"src/helpers/radiolib/Custom{chip}.h").read_text(encoding="utf-8") code = code.replace(f"@{chip}@", method(source, "int16_t beginMorseReceive(")) + if chip != "SX1276": + code = code.replace(f"@{chip}_REGULATOR@", regulator_members(source)) if chip == "LR2021": code = code.replace("@LR2021_RESTORE@", method(source, "int16_t restoreRfSwitchTable(")) sx1262 = (ROOT / "src/helpers/radiolib/CustomSX1262.h").read_text(encoding="utf-8") diff --git a/test/test_morse_tx.py b/test/test_morse_tx.py index 27884eb36..a3a91ae23 100644 --- a/test/test_morse_tx.py +++ b/test/test_morse_tx.py @@ -15,7 +15,7 @@ SANITIZERS = ["-fsanitize=address,undefined", "-fno-sanitize-recover=all", "-fno def portable_radio_header(): """Use the exact Radio interface without unrelated packet/crypto mocks.""" dispatcher = (ROOT / "src/Dispatcher.h").read_text(encoding="utf-8") - return ("#pragma once\n#include \n#include \n#include \nnamespace mesh {\n" + return ("#pragma once\n#include \n#include \n#include \n#include \nnamespace mesh {\n" + method(dispatcher, "enum class RadioParamApplyResult") + ";\n" + method(dispatcher, "class Radio {") + ";\n}\n") diff --git a/test/test_nrf52_ble_dfu_fix.py b/test/test_nrf52_ble_dfu_fix.py index 70d41b391..6480fbc9d 100644 --- a/test/test_nrf52_ble_dfu_fix.py +++ b/test/test_nrf52_ble_dfu_fix.py @@ -77,8 +77,71 @@ class DfuSourcePatchTest(unittest.TestCase): self.assertLess(fixed.index("SCB_ICSR_PENDSVCLR_Msk"), fixed.index("sd_softdevice_vector_table_base_set")) self.assertLess(fixed.index("sd_softdevice_vector_table_base_set"), + fixed.index("if (meshRegulatorCleanReset)")) + self.assertLess(fixed.index("if (meshRegulatorCleanReset)"), fixed.index("mesh_nrf52_dfu_jump(NRF_UICR")) + def test_only_a_successful_dfu_handoff_marks_clean_with_optional_policy(self): + compiler = shutil.which("c++") or shutil.which("g++") + if not compiler: + self.skipTest("host C++ compiler required for DFU clean-reset regression") + code = r''' +#include +#include +@DECLARATION@ +static unsigned clean_marks, jumps, vector_calls; +static bool reject_vector; +struct Uicr { uint32_t NRFFW[1] = {0xF4000}; } uicr; +#define NRF_UICR (&uicr) +#define VERIFY_STATUS(expression, result) do { if ((expression) != 0) return result; } while (0) +uint32_t sd_softdevice_vector_table_base_set(uint32_t address) { + assert(address == 0xF4000); + ++vector_calls; + return reject_vector ? 1 : 0; +} +void mesh_nrf52_dfu_jump(uint32_t address) { + assert(address == 0xF4000); + assert(clean_marks == EXPECTED_MARKS); + ++jumps; +} +void attemptDfu(bool requested) { + if (!requested) return; // Advertising or an aborted update is not a reboot. + VERIFY_STATUS(sd_softdevice_vector_table_base_set(NRF_UICR->NRFFW[0]), ); +@JUMP@ +} +#if WITH_POLICY +extern "C" void meshRegulatorCleanReset() { + assert(jumps == 0 && vector_calls == 2 && !reject_vector); + ++clean_marks; +} +#endif +int main() { + attemptDfu(false); + assert(clean_marks == 0 && vector_calls == 0 && jumps == 0); + reject_vector = true; + attemptDfu(true); + assert(clean_marks == 0 && vector_calls == 1 && jumps == 0); + reject_vector = false; + attemptDfu(true); + assert(clean_marks == EXPECTED_MARKS && vector_calls == 2 && jumps == 1); +} +'''.replace("@DECLARATION@", patch.CLEAN_RESET_DECLARATION).replace("@JUMP@", patch.JUMP) + with tempfile.TemporaryDirectory(prefix="meshcore-dfu-clean-reset-") as directory: + cpp = Path(directory) / "fixture.cpp" + cpp.write_text(code) + for policy in (False, True): + with self.subTest(policy=policy): + binary = Path(directory) / f"test-{int(policy)}" + built = subprocess.run([ + compiler, "-std=c++17", "-Wall", "-Wextra", "-Werror", + f"-DWITH_POLICY={int(policy)}", f"-DEXPECTED_MARKS={int(policy)}", + str(cpp), "-o", str(binary), + ], capture_output=True, text=True, timeout=30) + self.assertEqual(built.returncode, 0, built.stdout + built.stderr) + tested = subprocess.run([str(binary)], capture_output=True, + text=True, timeout=10) + self.assertEqual(tested.returncode, 0, tested.stdout + tested.stderr) + def test_unknown_or_partially_patched_framework_fails_closed(self): for original in ("unrecognized framework", self.fixture().replace( patch.OLD_JUMP, patch.JUMP), self.fixture().replace( diff --git a/test/test_nrf52_board_regulators.py b/test/test_nrf52_board_regulators.py index 5b0366339..fdb3bb822 100644 --- a/test/test_nrf52_board_regulators.py +++ b/test/test_nrf52_board_regulators.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Run real board startup methods against counted nRF52 regulator SDK calls.""" +"""Board startup approves DC/DC hardware and defers activation to saved policy.""" import configparser import os from pathlib import Path @@ -58,25 +58,28 @@ void sd_power_dcdc_mode_set(int mode) { assert(base_calls == 1 && softdevice && mode == NRF_POWER_DCDC_ENABLE); ++sdk_calls; } -void requireDcdc() { +void requireDeferredDcdc() { assert(base_calls == 1); - assert(softdevice ? sdk_calls == 1 : power.DCDCEN == 1); + assert(sdk_calls == 0 && power.DCDCEN == 0); } -void pinMode(int, int) { requireDcdc(); } -void digitalWrite(int, int) { requireDcdc(); } +void pinMode(int, int) { requireDeferredDcdc(); } +void digitalWrite(int, int) { requireDeferredDcdc(); } void delay(unsigned) {} -void meshSolarStart() { requireDcdc(); } +void meshSolarStart() { requireDeferredDcdc(); } struct Bus { - void setPins(int, int) { requireDcdc(); } - void begin() { requireDcdc(); } + void setPins(int, int) { requireDeferredDcdc(); } + void begin() { requireDeferredDcdc(); } } Wire; -struct Uart { void begin(unsigned) { requireDcdc(); } } Serial; +struct Uart { void begin(unsigned) { requireDeferredDcdc(); } } Serial; struct Peripheral { - void begin() { requireDcdc(); } - void init() { requireDcdc(); } + void begin() { requireDeferredDcdc(); } + void init() { requireDeferredDcdc(); } }; struct Config {} power_config; -struct NRF52Board { void begin() { ++base_calls; } }; +struct NRF52Board { + bool cpu_dcdc_supported = false; + void begin() { ++base_calls; } +}; struct NRF52BoardDCDC : NRF52Board { void begin(); }; struct @BOARD@ : NRF52BoardDCDC { Peripheral periph_power, loRaFEMControl; @@ -84,7 +87,7 @@ struct @BOARD@ : NRF52BoardDCDC { void begin(); void checkBootVoltage(const Config*) { ++voltage_checks; - requireDcdc(); + requireDeferredDcdc(); } }; @METHODS@ @@ -94,8 +97,8 @@ int main() { @BOARD@ board; board.begin(); assert(base_calls == 1 && voltage_checks == @VOLTAGE_CHECKS@); - assert(sdk_calls == softdevice); - assert(power.DCDCEN == (softdevice ? 0U : 1U)); + assert(board.cpu_dcdc_supported); + assert(sdk_calls == 0 && power.DCDCEN == 0); } } ''' @@ -122,14 +125,14 @@ class Nrf52BoardRegulatorTests(unittest.TestCase): result = subprocess.run([str(binary)], capture_output=True, text=True, timeout=10) self.assertEqual(result.returncode, 0, result.stdout + result.stderr) - def test_rak4631_startup_uses_dcdc_before_voltage_check(self): - # Cover boot before BLE starts and an already-active SoftDevice. Also - # prove an obsolete downstream flag cannot silently force LDO again. + def test_rak4631_defers_dcdc_until_saved_policy_is_loaded(self): + # Board startup must not force either saved mode before policy loads, + # regardless of SoftDevice state or obsolete downstream flags. for flags in ((), ('-DRAK4631_COMPANION_FORCE_LDO=1',)): with self.subTest(flags=flags): self.run_startup('variants/rak4631/RAK4631Board.cpp', 'RAK4631Board', flags) - def test_verified_boards_initialize_dcdc_before_peripherals(self): + def test_verified_boards_defer_dcdc_until_peripherals_and_policy_are_ready(self): for filename, board, has_voltage_check in VERIFIED_BOARDS: for power_management in (False, True): with self.subTest(board=board, power_management=power_management): diff --git a/test/test_nrf52_internal_bootloader_link.py b/test/test_nrf52_internal_bootloader_link.py index 05f79b5d3..007f3013f 100644 --- a/test/test_nrf52_internal_bootloader_link.py +++ b/test/test_nrf52_internal_bootloader_link.py @@ -307,9 +307,10 @@ class Nrf52InternalBootloaderSelectorTest(unittest.TestCase): class Nrf52HybridLinkerContractTest(unittest.TestCase): def test_real_linker_markers_do_not_confuse_late_data_with_reservation(self): - compiler, linker, nm = (shutil.which(name) for name in ("cc", "ld", "nm")) - if not all((compiler, linker, nm)): - self.skipTest("native cc, ld and nm are required for linker fixtures") + compiler, linker, nm, readelf = ( + shutil.which(name) for name in ("cc", "ld", "nm", "readelf")) + if not all((compiler, linker, nm, readelf)): + self.skipTest("native cc, ld, nm and readelf are required for linker fixtures") # A large framework registration prefix moves .data beyond the auth # ABI even in an unreserved map. Only the explicit region markers can # distinguish it from a genuinely reserved receiver layout. @@ -318,6 +319,8 @@ class Nrf52HybridLinkerContractTest(unittest.TestCase): .long 0 .section .persistent_data,"aw" .long 0 +.section .regulator_recovery,"aw" +.space 64 .section .svc_data,"aw" .space 128 .section .fs_data,"aw" @@ -329,14 +332,27 @@ class Nrf52HybridLinkerContractTest(unittest.TestCase): SECTIONS { .data : { __data_start__ = .; *(.data) } > RAM } +__HeapBase = __data_start__ + SIZEOF(.data); +__HeapLimit = ORIGIN(RAM) + LENGTH(RAM); """ with tempfile.TemporaryDirectory(prefix="meshcore-sd-auth-linker-") as directory: work = Path(directory) (work / "fixture.S").write_text(assembly, encoding="ascii") (work / "nrf52_common.ld").write_text(common, encoding="ascii") + (work / "boards").mkdir() + shutil.copyfile(ROOT / "boards/nrf52_heap_reserve.ld", + work / "boards/nrf52_heap_reserve.ld") subprocess.run([compiler, "-c", str(work / "fixture.S"), "-o", str(work / "fixture.o")], check=True, capture_output=True, text=True, timeout=30) - for suffix in ("v6", "v7", "v6_sd_ota", "v6_mota64", "v7_mota64"): + (work / "overflow.S").write_text( + assembly.replace('.section .regulator_recovery,"aw"\n.space 64', + '.section .regulator_recovery,"aw"\n.space 65'), + encoding="ascii") + subprocess.run([compiler, "-c", str(work / "overflow.S"), + "-o", str(work / "overflow.o")], + check=True, capture_output=True, text=True, timeout=30) + for suffix in ("v6", "v7", "v6_extrafs", "v7_extrafs", + "v7_xiao_bootloader_ota", "v6_sd_ota", "v6_mota64", "v7_mota64"): with self.subTest(suffix=suffix): source = (ROOT / "boards" / f"nrf52840_s140_{suffix}.ld").read_text() # Native tools suffice: omit only the ARM C library group; @@ -349,13 +365,25 @@ SECTIONS { output = subprocess.check_output([nm, str(work / "fixture.elf")], text=True) symbols = {name: int(value, 16) for value, _kind, name in (line.split() for line in output.splitlines())} - self.assertGreaterEqual(symbols["__data_start__"], 0x20006050) - if suffix in ("v6", "v7"): + self.assertGreaterEqual(symbols["__data_start__"], 0x20006090) + self.assertEqual(symbols["__regulator_recovery_start__"], 0x20006050) + self.assertEqual(symbols["__regulator_recovery_end__"], 0x20006090) + section_info = subprocess.check_output( + [readelf, "-SW", str(work / "fixture.elf")], + text=True) + self.assertRegex(section_info, + r"\.regulator_recovery\s+NOBITS\s+0*20006050\s+\S+\s+0*40\s") + if suffix in ("v6", "v7", "v6_extrafs", "v7_extrafs", "v7_xiao_bootloader_ota"): self.assertNotIn("__mota_sd_auth_start__", symbols) self.assertNotIn("__mota_sd_auth_end__", symbols) else: self.assertEqual(symbols["__mota_sd_auth_start__"], 0x20006008) self.assertEqual(symbols["__mota_sd_auth_end__"], 0x20006050) + overflow = subprocess.run( + [linker, "-T", "fixture.ld", "overflow.o", "-o", "overflow.elf"], + cwd=work, text=True, capture_output=True, timeout=30) + self.assertNotEqual(overflow.returncode, 0, + "65-byte recovery record must fail the production link") def test_sd_authorization_has_explicit_reserved_boundaries(self): for suffix in ("v6_sd_ota", "v6_mota64", "v7_mota64"): @@ -363,13 +391,14 @@ SECTIONS { path = ROOT / "boards" / f"nrf52840_s140_{suffix}.ld" regions = memory_regions(path) source = path.read_text(encoding="utf-8") - self.assertEqual(regions["RAM"][0], 0x20006050) + self.assertEqual(regions["RAM"][0], 0x20006090) + self.assertEqual(regions["REGULATOR_RECOVERY_RAM"], (0x20006050, 64)) self.assertEqual(regions["PERSISTENT_RAM"], (0x20006000, 80)) self.assertIn("__mota_sd_auth_start__ = ", source) self.assertIn("__mota_sd_auth_end__ = ", source) self.assertIn("ASSERT(ORIGIN(RAM) >= __mota_sd_auth_end__,", source) if suffix == "v6_sd_ota": - self.assertEqual(regions["RAM"][1], 0x20040000 - 0x20006050) + self.assertEqual(regions["RAM"][1], 0x20040000 - 0x20006090) self.assertIn("ASSERT(__mota_sd_auth_start__ == 0x20006008,", source) self.assertIn("ASSERT(__mota_sd_auth_end__ == 0x20006050,", source) else: @@ -398,13 +427,15 @@ SECTIONS { self.assertEqual(hybrid["FLASH"], (flash_start, 0xED000 - flash_start)) self.assertEqual(hybrid["PERSISTENT_RAM"], (0x20006000, 8 + auth_len)) self.assertEqual(auth_start, 0x20006000 + 8) - self.assertEqual(hybrid["RAM"][0], auth_start + auth_len) + self.assertEqual(hybrid["REGULATOR_RECOVERY_RAM"], (auth_start + auth_len, 64)) + self.assertEqual(normal["REGULATOR_RECOVERY_RAM"], hybrid["REGULATOR_RECOVERY_RAM"]) + self.assertEqual(hybrid["RAM"][0], auth_start + auth_len + 64) self.assertEqual(hybrid["RAM"][0] + hybrid["RAM"][1], arena_start) self.assertEqual(hybrid["MOTA_RAM"], (arena_start, arena_len)) self.assertEqual(arena_start + arena_len, 0x20040000) self.assertEqual( normal["RAM"][1] - hybrid["RAM"][1], - arena_len + auth_len, + arena_len, ) def test_linkers_export_and_assert_every_fixed_handoff_boundary(self): @@ -416,7 +447,8 @@ SECTIONS { "ASSERT(__mota_hybrid_handoff_start__ == 0x20006008,", "ASSERT(__mota_hybrid_handoff_end__ == 0x20006050,", "ASSERT(__mota_hybrid_handoff_end__ - __mota_hybrid_handoff_start__ == 72,", - "ASSERT(ORIGIN(RAM) == __mota_hybrid_handoff_end__,", + "ASSERT(ORIGIN(REGULATOR_RECOVERY_RAM) == __mota_hybrid_handoff_end__,", + "ASSERT(ORIGIN(RAM) == __regulator_recovery_end__,", "ASSERT(ORIGIN(RAM) + LENGTH(RAM) == ORIGIN(MOTA_RAM),", "ASSERT(ORIGIN(MOTA_RAM) + LENGTH(MOTA_RAM) == 0x20040000,", ".mota_ram (NOLOAD)", diff --git a/test/test_nrf52_regulator.py b/test/test_nrf52_regulator.py new file mode 100644 index 000000000..6492b95a5 --- /dev/null +++ b/test/test_nrf52_regulator.py @@ -0,0 +1,243 @@ +#!/usr/bin/env python3 +"""Execute the production nRF52 CPU regulator and reset classification paths.""" +from pathlib import Path +import os +import subprocess +import tempfile +import unittest + +from cpp_source import body + +ROOT = Path(__file__).resolve().parents[1] +BOARD = ROOT / "src/helpers/NRF52Board.cpp" + + +def run_native(source): + with tempfile.TemporaryDirectory(prefix="meshcore-nrf52-regulator-") as directory: + cpp, binary = Path(directory) / "test.cpp", Path(directory) / "test" + cpp.write_text(source, encoding="ascii") + compiled = subprocess.run( + [os.environ.get("CXX", "c++"), "-std=c++17", "-Wall", "-Wextra", + "-Werror", "-I", str(ROOT / "src"), str(cpp), "-o", str(binary)], + capture_output=True, text=True, timeout=60) + if compiled.returncode: + raise AssertionError(compiled.stdout + compiled.stderr) + result = subprocess.run([str(binary)], capture_output=True, text=True, timeout=10) + if result.returncode: + raise AssertionError(result.stdout + result.stderr) + + +class Nrf52RegulatorTests(unittest.TestCase): + def test_saved_cpu_mode_uses_checked_sdk_and_rejects_unsupported_boards(self): + source = BOARD.read_text() + methods = "\n".join(body(source, signature) for signature in ( + "uint8_t NRF52Board::mcuRegulatorModes() const", + "mesh::power::RegulatorMode NRF52Board::defaultMcuRegulatorMode() const", + "mesh::power::RegulatorMode NRF52Board::activeMcuRegulatorMode() const", + "bool NRF52Board::applyMcuRegulator(mesh::power::RegulatorMode mode)", + )) + run_native(r''' +#include +#include +#include "helpers/RegulatorMode.h" +using mesh::power::RegulatorMode; +constexpr uint32_t NRF_SUCCESS = 0; +constexpr uint8_t NRF_POWER_DCDC_DISABLE = 0, NRF_POWER_DCDC_ENABLE = 1; +static uint32_t query_result, setter_result; +static uint8_t softdevice, requested; +static unsigned setter_calls; +struct Power { unsigned DCDCEN; } power; +#define NRF_POWER (&power) +namespace mesh_nrf52 { +uint32_t softdeviceIsEnabled(uint8_t& enabled) { + enabled = softdevice; + return query_result; +} +} +uint32_t sd_power_dcdc_mode_set(uint8_t mode) { + assert(softdevice); + requested = mode; + ++setter_calls; + return setter_result; +} +struct NRF52Board { + bool cpu_dcdc_supported = false; + RegulatorMode cpu_regulator_mode = RegulatorMode::Ldo; + uint8_t mcuRegulatorModes() const; + RegulatorMode defaultMcuRegulatorMode() const; + RegulatorMode activeMcuRegulatorMode() const; + bool applyMcuRegulator(RegulatorMode); +}; +@METHODS@ +int main() { + NRF52Board board; + power.DCDCEN = 77; + assert(board.mcuRegulatorModes() == 0); + assert(board.defaultMcuRegulatorMode() == RegulatorMode::Default); + assert(!board.applyMcuRegulator(RegulatorMode::Dcdc)); + assert(!board.applyMcuRegulator(RegulatorMode::Ldo)); + assert(!board.applyMcuRegulator(RegulatorMode::Default)); + assert(power.DCDCEN == 77 && setter_calls == 0); + board.cpu_dcdc_supported = true; + assert(board.mcuRegulatorModes() == 3); + assert(board.defaultMcuRegulatorMode() == RegulatorMode::Dcdc); + assert(!board.applyMcuRegulator(static_cast(255))); + for (softdevice = 0; softdevice < 2; ++softdevice) { + power.DCDCEN = 77; + query_result = 5; + assert(!board.applyMcuRegulator(RegulatorMode::Dcdc)); + assert(power.DCDCEN == 77 && setter_calls == 0); + query_result = 0; + setter_result = 0; + assert(board.applyMcuRegulator(RegulatorMode::Default)); + assert(board.activeMcuRegulatorMode() == RegulatorMode::Dcdc); + assert(softdevice ? requested == 1 : power.DCDCEN == 1); + assert(board.applyMcuRegulator(RegulatorMode::Ldo)); + assert(board.activeMcuRegulatorMode() == RegulatorMode::Ldo); + assert(softdevice ? requested == 0 : power.DCDCEN == 0); + if (softdevice) { + setter_result = 4; + assert(!board.applyMcuRegulator(RegulatorMode::Dcdc)); + assert(board.activeMcuRegulatorMode() == RegulatorMode::Ldo); + assert(power.DCDCEN == 77); + } + setter_calls = 0; + } +} +'''.replace("@METHODS@", methods)) + + def test_reset_classifier_excludes_wakes_and_intentional_resets(self): + method = body(BOARD.read_text(), "ResetKind platformResetKind()") + run_native(r''' +#include +#include +#include "helpers/RegulatorRecovery.h" +using mesh::power::ResetKind; +constexpr uint32_t NRF_SUCCESS = 0; +#define POWER_RESETREAS_RESETPIN_Msk 1U +#define POWER_RESETREAS_DOG_Msk 2U +#define POWER_RESETREAS_SREQ_Msk 4U +#define POWER_RESETREAS_LOCKUP_Msk 8U +#define POWER_RESETREAS_OFF_Msk 16U +#define POWER_RESETREAS_LPCOMP_Msk 32U +#define POWER_RESETREAS_VBUS_Msk 64U +#define POWER_RESETREAS_DIF_Msk 128U +static uint32_t regulator_reset_reason; +static uint8_t regulator_shutdown_reason; +static uint32_t query_result = 3, clear_result = 7; +static unsigned query_calls, clear_calls; +struct Power { uint32_t RESETREAS = 0; } power; +#define NRF_POWER (&power) +namespace mesh_nrf52 { +uint32_t softdeviceIsEnabled(uint8_t& enabled) { + ++query_calls; + enabled = 1; + return query_result; +} +} +uint32_t sd_power_reset_reason_clr(uint32_t bits) { + assert(bits == 0xFFFFFFFFUL); + ++clear_calls; + return clear_result; +} +@METHOD@ +int main() { + assert(platformResetKind() == ResetKind::Unknown); + assert(query_calls == 1 && clear_calls == 0 && power.RESETREAS == 0); + query_result = 0; + assert(platformResetKind() == ResetKind::Unknown); + assert(clear_calls == 1 && power.RESETREAS == 0); + clear_result = 0; + regulator_reset_reason = 0; + assert(platformResetKind() == ResetKind::Cold); + assert(clear_calls == 2); + for (uint32_t reason : {2U, 4U, 8U, 2U | 4U}) { + regulator_reset_reason = reason; + assert(platformResetKind() == ResetKind::Crash); + } + for (uint32_t reason : {16U, 32U, 64U, 16U | 2U}) { + regulator_reset_reason = reason; + assert(platformResetKind() == ResetKind::Wake); + } + for (uint32_t reason : {1U, 128U, 1U | 2U}) { + regulator_reset_reason = reason; + assert(platformResetKind() == ResetKind::Intentional); + } + regulator_reset_reason = 8U; + for (uint8_t shutdown : {0x4C, 0x55, 0x42}) { + regulator_shutdown_reason = shutdown; + assert(platformResetKind() == ResetKind::Intentional); + } + regulator_shutdown_reason = 0; + regulator_reset_reason = 0x80000000UL; + assert(platformResetKind() == ResetKind::Unknown); + assert(clear_calls == 2); +} +'''.replace("@METHOD@", method).replace("#include ", + "#include \n#include ")) + + def test_reset_acknowledgement_without_softdevice_uses_direct_register(self): + method = body(BOARD.read_text(), "ResetKind platformResetKind()") + run_native(r''' +#include +#include +#include "helpers/RegulatorRecovery.h" +using mesh::power::ResetKind; +constexpr uint32_t NRF_SUCCESS = 0; +#define POWER_RESETREAS_RESETPIN_Msk 1U +#define POWER_RESETREAS_DOG_Msk 2U +#define POWER_RESETREAS_SREQ_Msk 4U +#define POWER_RESETREAS_LOCKUP_Msk 8U +static uint32_t regulator_reset_reason; +static uint8_t regulator_shutdown_reason; +static unsigned query_calls, clear_calls; +struct Power { uint32_t RESETREAS = 0; } power; +#define NRF_POWER (&power) +namespace mesh_nrf52 { +uint32_t softdeviceIsEnabled(uint8_t& enabled) { + ++query_calls; + enabled = 0; + return 0; +} +} +uint32_t sd_power_reset_reason_clr(uint32_t) { + ++clear_calls; + return 9; +} +@METHOD@ +int main() { + assert(platformResetKind() == ResetKind::Cold); + assert(query_calls == 1 && clear_calls == 0); + assert(power.RESETREAS == 0xFFFFFFFFUL); + regulator_reset_reason = POWER_RESETREAS_DOG_Msk; + assert(platformResetKind() == ResetKind::Crash); + assert(query_calls == 1 && clear_calls == 0); +} +'''.replace("@METHOD@", method)) + + def test_clean_reboot_marker_is_optional_and_precedes_reset(self): + method = body(BOARD.read_text(), "void NRF52Board::reboot()") + run_native(r''' +#include +static unsigned resets, clean_marks; +static void (*meshRegulatorCleanReset)(); +void markClean() { assert(resets == 1); ++clean_marks; } +void NVIC_SystemReset() { + assert(resets == 0 || clean_marks == 1); + ++resets; +} +struct NRF52Board { void reboot(); }; +@METHOD@ +int main() { + NRF52Board board; + board.reboot(); + assert(resets == 1 && clean_marks == 0); + meshRegulatorCleanReset = markClean; + board.reboot(); + assert(resets == 2 && clean_marks == 1); +} +'''.replace("@METHOD@", method)) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/test_radio_profile_scan.py b/test/test_radio_profile_scan.py index 8d4726ee2..5b3e91b13 100644 --- a/test/test_radio_profile_scan.py +++ b/test/test_radio_profile_scan.py @@ -5,6 +5,7 @@ import subprocess import tempfile import unittest from test_radio_receive_contract import method +from radio_regulator_harness import regulator_members ROOT = Path(__file__).resolve().parents[1] HARNESS = r''' @@ -447,7 +448,7 @@ class ProfileScanTest(unittest.TestCase): (Path(folder)/'Arduino.h').write_text('#pragma once\n#include \n#include \n') cpp.write_text(HARNESS.replace('@METHODS@',methods)) result=subprocess.run([os.environ.get('CXX','g++'),'-std=c++17','-Wall','-Wextra', - '-I',folder,'-I',str(ROOT/'src'),str(cpp),'-o',str(exe)],capture_output=True,text=True) + '-I',folder,'-I',str(ROOT/'src'),'-I',str(ROOT/'src'),str(cpp),'-o',str(exe)],capture_output=True,text=True) self.assertEqual(result.returncode,0,result.stderr) result=subprocess.run([str(exe)],capture_output=True,text=True) self.assertEqual(result.returncode,0,result.stderr) @@ -458,6 +459,8 @@ class ProfileScanTest(unittest.TestCase): harness=r''' #include #include +#include +#define MESH_DEBUG_PRINTLN(...) ((void)0) #define RADIOLIB_SX126X_SYNC_WORD_PRIVATE 0x12 #define RADIOLIB_ERR_NONE 0 struct SX1262 { @@ -470,6 +473,7 @@ struct SX1262 { } }; struct CustomSX1262: SX1262 { + @REGULATOR@ bool _coldStandby=false; bool _tcxoWakePending=true; struct { bool invalidated=false; void invalidate() { invalidated=true; } } _profileSwitch; @@ -496,9 +500,9 @@ int main() { ''' with tempfile.TemporaryDirectory() as folder: cpp=Path(folder)/'test.cpp'; exe=Path(folder)/'test.exe' - cpp.write_text('#include \n'+harness.replace('@BEGIN@',begin)) + cpp.write_text('#include \n'+harness.replace('@BEGIN@',begin).replace('@REGULATOR@',regulator_members(source))) result=subprocess.run([os.environ.get('CXX','g++'),'-std=c++17','-Wall','-Wextra', - str(cpp),'-o',str(exe)],capture_output=True,text=True) + '-I',str(ROOT/'src'),str(cpp),'-o',str(exe)],capture_output=True,text=True) self.assertEqual(result.returncode,0,result.stderr) result=subprocess.run([str(exe)],capture_output=True,text=True) self.assertEqual(result.returncode,0,result.stderr) diff --git a/test/test_radio_regulator_modes.py b/test/test_radio_regulator_modes.py new file mode 100644 index 000000000..52c871ee5 --- /dev/null +++ b/test/test_radio_regulator_modes.py @@ -0,0 +1,183 @@ +"""Execute boot selection, regulator errors, Morse resets and radio recovery.""" +from pathlib import Path +import unittest +from test_morse_tx import compile_run +from test_radio_receive_contract import method +from radio_regulator_harness import regulator_members + +ROOT = Path(__file__).resolve().parents[1] + +HARNESS = r''' +#include +#include +#include +#include +#include +#define RADIOLIB_ERR_NONE 0 +#define RADIOLIB_ERR_UNKNOWN -16 +#define RADIOLIB_SX126X_SYNC_WORD_PRIVATE 0x12 +#define RADIOLIB_LR11X0_LORA_SYNC_WORD_PRIVATE 0x12 +#define RADIOLIB_LR2021_LORA_SYNC_WORD_PRIVATE 0x12 +#define LORA_FREQ 909.5f +#define LORA_BW 500.0f +#define LORA_SF 5 +#define LORA_CR 5 +#define LORA_TX_POWER 2 +#define MESH_DEBUG_PRINTLN(...) ((void)0) +struct SPIClass {}; +struct Module {}; +namespace mesh { +struct Logger { void print(const char*) {} void println(int) {} }; +inline Logger& usbLoggingPort() { static Logger logger;return logger; } +struct MorseRx { static constexpr float ReceiverBitRateKbps=4.8f; }; +namespace lr2021 { inline bool isHighBand(float f) { return f>1900; } } +} +struct Native { + int fail=0,spi=0,regulator_writes=0,modem_resets=0; + bool useRegulatorLDO=true,standbyXOSC=true; + float tcxoVoltage=1.6f; + uint8_t syncWordLength=4,preambleDetLength=4,gainModeLf=1,gainModeHf=3; + int step(int phase) { ++spi;return fail==phase ? -100-phase : 0; } + int nativeReset() { ++modem_resets;useRegulatorLDO=true;return step(1); } + int16_t begin(float,float,uint8_t,uint8_t,uint8_t,int8_t,uint16_t,float) { + return nativeReset(); + } + int16_t begin(float,float,uint8_t,uint8_t,uint8_t,int8_t,uint16_t,float,bool ldo) { + assert(!standbyXOSC); + int result=nativeReset(); + if(!result) { ++regulator_writes;result=step(2);if(!result)useRegulatorLDO=ldo; } + return result; + } + virtual int16_t beginFSK(float,float,float,float,int8_t,uint16_t,float,bool ldo) { + int result=nativeReset(); + if(!result) { ++regulator_writes;result=step(2);if(!result)useRegulatorLDO=ldo; } + return result; + } + int16_t beginGFSK(float,float,float,float,int8_t,uint16_t,float) { return nativeReset(); } + int16_t setRegulatorDCDC() { + ++regulator_writes;int result=step(2);if(!result)useRegulatorLDO=false;return result; + } + int16_t setRegulatorLDO() { + ++regulator_writes;int result=step(2);if(!result)useRegulatorLDO=true;return result; + } + int16_t applyMeshCoreTcxoDelay() { return step(3); } + int16_t setCRC(int) { return step(4); } + int16_t setRxBoostedGainMode(int) { return step(5); } + int16_t setSyncWord(uint8_t*,size_t) { return step(6); } + int16_t explicitHeader() { return step(7); } + int16_t setDioAsRfSwitch(uint8_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t) { return step(8); } + struct Profile { void invalidate() {} }; + struct RfSwitch { + template int restore(Callback callback) { + const uint8_t modes[]={0,0,0,0,0,0,0};return callback(0,modes); + } + }; +}; +using @CHIP@=Native; +class Custom:public @CHIP@ { + @POLICY@ + bool _coldStandby=false,_tcxoWakePending=false,_profilePacketDirty=true,_rx_boosted=false; + Profile _profileSwitch; + RfSwitch _morse_rf_switch; +public: + int restoreRfSwitchTable() { return 0; } + @INIT@ + @MORSE@ + int init() { return @INIT_CALL@; } + int morse() { return @MORSE_CALL@; } +}; +@WRAPPER@ +int main() { + using mesh::power::RegulatorMode; + constexpr bool supported_dcdc=@DCDC@; + for (auto requested:{RegulatorMode::Default,RegulatorMode::Ldo,RegulatorMode::Dcdc}) { + Custom radio;Wrapper wrapper{&radio}; + assert(wrapper.activeRegulatorMode()==RegulatorMode::Default && radio.spi==0); + assert(!wrapper.configureBootRegulator(static_cast(3))); + assert(wrapper.regulatorModes()==radio.regulatorModes()); + const bool supported=requested!=RegulatorMode::Dcdc || supported_dcdc; + assert(wrapper.configureBootRegulator(requested)==supported); + assert(radio.spi==0); // boot configuration cannot send commands mid-RX/TX + if(!supported) continue; + const auto expected=requested==RegulatorMode::Default ? wrapper.defaultRegulatorMode() : requested; + assert(radio.init()==0 && wrapper.activeRegulatorMode()==expected); + assert(radio.useRegulatorLDO==(expected==RegulatorMode::Ldo)); + assert(!wrapper.configureBootRegulator(RegulatorMode::Default)); + // Both transitions reset the native modem; the saved choice survives each. + assert(radio.morse()==0 && wrapper.activeRegulatorMode()==expected); + assert(radio.useRegulatorLDO==(expected==RegulatorMode::Ldo)); + assert(radio.init()==0 && wrapper.activeRegulatorMode()==expected); + assert(radio.useRegulatorLDO==(expected==RegulatorMode::Ldo)); + for(int fault:{1,2}) { + if(fault==2 && @SKIP_LDO_WRITE@) continue; + radio.fail=fault; + assert(radio.morse()!=0); + assert(wrapper.activeRegulatorMode()==RegulatorMode::Default); + assert(!wrapper.configureBootRegulator(RegulatorMode::Ldo)); + radio.fail=0; + assert(radio.init()==0 && wrapper.activeRegulatorMode()==expected); + assert(radio.useRegulatorLDO==(expected==RegulatorMode::Ldo)); + radio.fail=fault; + assert(radio.init()!=0 && wrapper.activeRegulatorMode()==RegulatorMode::Default); + radio.fail=0; + assert(radio.init()==0 && wrapper.activeRegulatorMode()==expected); + } + } + // A failed first init must lock the boot policy as firmly as a successful one. + Custom failed; + assert(failed.configureBootRegulator(RegulatorMode::Ldo));failed.fail=1; + assert(failed.init()!=0 && !failed.configureBootRegulator(RegulatorMode::Default)); +} +''' + + +class RadioRegulatorTests(unittest.TestCase): + def exercise(self, chip, flags=(), dcdc=True): + source = (ROOT / f'src/helpers/radiolib/Custom{chip}.h').read_text() + if chip == 'LR2021': + initialize = method(source, 'bool std_init(') + init_call = 'std_init() ? 0 : -1' + else: + initialize = method(source, 'int16_t begin(') + init_call = 'begin()' + if chip == 'SX1262': + morse = method(source, 'int16_t beginFSK(') + morse_call = 'beginFSK()' + else: + morse = method(source, 'int16_t beginMorseReceive(') + morse_call = 'beginMorseReceive(902.1f)' + wrapper_source = (ROOT / f'src/helpers/radiolib/Custom{chip}Wrapper.h').read_text() + delegates = '\n'.join(method(wrapper_source, signature).replace(' override', '') + for signature in ('uint8_t regulatorModes(', + 'mesh::power::RegulatorMode defaultRegulatorMode(', + 'bool configureBootRegulator(', 'mesh::power::RegulatorMode activeRegulatorMode(')) + wrapper = f'using Custom{chip}=Custom;\nstruct Wrapper {{ Custom* _radio;\n{delegates}\n}};' + code = HARNESS.replace('@WRAPPER@', wrapper) + for marker, value in {'@CHIP@': chip, '@POLICY@': regulator_members(source), + '@INIT@': initialize, '@MORSE@': morse, '@INIT_CALL@': init_call, + '@MORSE_CALL@': morse_call, '@DCDC@': str(dcdc).lower(), + '@SKIP_LDO_WRITE@': str(chip == 'LR2021' and not dcdc).lower()}.items(): + code = code.replace(marker, value) + compile_run(self, code, flags=('-Wno-unused-parameter', *flags)) + + def test_sx1262_boot_selection_morse_failures_and_recovery(self): + self.exercise('SX1262') + + def test_sx1262_forced_ldo_recipe_cannot_enable_missing_dcdc_network(self): + self.exercise('SX1262', ('-DSX126X_USE_REGULATOR_LDO=1',), dcdc=False) + + def test_lr1110_boot_selection_morse_failures_and_recovery(self): + self.exercise('LR1110') + + def test_lr1121_boot_selection_morse_failures_and_recovery(self): + self.exercise('LR1121') + + def test_lr2021_verified_layout_boot_selection_morse_failures_and_recovery(self): + self.exercise('LR2021', ('-DLR2021_USE_DCDC=1',)) + + def test_lr2021_unverified_layout_cannot_enable_simo(self): + self.exercise('LR2021', ('-DLR2021_USE_DCDC=0',), dcdc=False) + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_rak_sd_receiver.py b/test/test_rak_sd_receiver.py index 4bde5208c..9c903bb70 100644 --- a/test/test_rak_sd_receiver.py +++ b/test/test_rak_sd_receiver.py @@ -42,6 +42,7 @@ class RakSdReceiverTest(unittest.TestCase): "void ota_reboot_to_apply() { // public:", )) run_cpp(r''' +extern "C" void meshRegulatorCleanReset() __attribute__((weak)); #include #include #include "src/helpers/ota/OtaBlInfo.h" @@ -127,6 +128,7 @@ int main() { end = cli.index("#elif defined(OTA_QSPI_STORE)", error) gate = cli[cli.index("\n", start) + 1:end] run_cpp(r''' +extern "C" void meshRegulatorCleanReset() __attribute__((weak)); #include #include #include @@ -169,6 +171,7 @@ int main() { self.assertNotIn("ota_acquire_context", body) self.assertNotIn("ota_ctx()", body) run_cpp(r''' +extern "C" void meshRegulatorCleanReset() __attribute__((weak)); #include #include #include @@ -216,6 +219,7 @@ int main() { # Full Companion uses the separate stable SD archive, not an adaptive # receiver. Compile the same production status block in both roles. run_cpp(r''' +extern "C" void meshRegulatorCleanReset() __attribute__((weak)); #include #include #include @@ -304,6 +308,7 @@ int main() { def test_exact_supplement_preserves_legacy_application_and_update_views(self): run_cpp(r''' +extern "C" void meshRegulatorCleanReset() __attribute__((weak)); #include #include #include diff --git a/test/test_regulator_recovery.py b/test/test_regulator_recovery.py new file mode 100644 index 000000000..c717894ba --- /dev/null +++ b/test/test_regulator_recovery.py @@ -0,0 +1,269 @@ +"""Exercise the production retained-RAM regulator recovery policy on the host.""" +from pathlib import Path +import os +import shutil +import subprocess +import tempfile +import unittest + +from test_serial_wifi_sessions import SANITIZER_FLAGS + +ROOT = Path(__file__).resolve().parents[1] + +HARNESS = r''' +#include +#include +#include +#include +#include +#include +using namespace mesh::power; + +static_assert(std::is_trivial::value, "retention must be POD"); +static_assert(std::is_standard_layout::value, "retention layout"); + +void initial(RecoveryRecord& r, uint8_t domains = RECOVERY_DOMAINS, + uint8_t percent = 50, bool valid = true, uint32_t now = 0) { + RecoveryPolicy p(r); + p.begin(ResetKind::Cold, 0); + p.arm(domains, now, percent, valid); +} +void counted(RecoveryRecord& r, unsigned crashes, uint8_t domains = RECOVERY_DOMAINS) { + initial(r, domains); + for (unsigned i = 0; i < crashes; ++i) { + RecoveryPolicy boot(r); + boot.begin(ResetKind::Crash, 0); + boot.arm(domains, 0, 50, true); + } +} +void assertCounts(const RecoveryPolicy& p, unsigned mcu, unsigned radio, unsigned fallback = 0) { + assert(p.crashCount(RECOVERY_MCU) == mcu); + assert(p.crashCount(RECOVERY_RADIO) == radio); + assert(p.fallbackMask() == fallback); +} + +int main(int argc, char** argv) { + assert(argc == 2); + const int scenario = std::atoi(argv[1]); + RecoveryRecord r{}; + if (scenario == 0) { + initial(r); + for (unsigned n = 1; n <= 3; ++n) { + RecoveryPolicy boot(r); boot.begin(ResetKind::Crash, 0); + assertCounts(boot, n, n, n == 3 ? RECOVERY_DOMAINS : 0); + boot.arm(RECOVERY_DOMAINS, 10, 50, true); + } + // A learned LDO fallback never flips back to DC-DC after more resets. + for (unsigned n = 0; n < 4; ++n) { + RecoveryPolicy boot(r); boot.begin(ResetKind::Crash, 0); + assertCounts(boot, 0, 0, RECOVERY_DOMAINS); + boot.arm(RECOVERY_DOMAINS, 10, 100, true); + } + } else if (scenario == 1) { + // Battery threshold is inclusive at 50%; a low sample breaks a streak. + counted(r, 2); + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); p.clearDomain(RECOVERY_DOMAINS); + p.arm(RECOVERY_DOMAINS, 0, 49, true); } + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 0, 0); + p.arm(RECOVERY_DOMAINS, 0, 50, true); } + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 1, 1); } + for (unsigned percent : {0u, 49u, 101u, 255u}) { + initial(r, RECOVERY_DOMAINS, percent, true); + RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 0, 0); + } + } else if (scenario == 2) { + // USB voltage, a missing battery, or an unknown percentage is not evidence. + for (unsigned percent : {0u, 50u, 100u, 255u}) { + initial(r, RECOVERY_DOMAINS, percent, false); + RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 0, 0); + } + initial(r); + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 1, 1); + p.arm(RECOVERY_DOMAINS, 0, 90, true); p.updateBattery(100, 90, false); + p.heartbeat(200); } + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 0, 0); } + } else if (scenario == 3) { + for (uint32_t age : {59999u, 60000u, 60001u, 299999u}) { + initial(r, RECOVERY_DOMAINS, 50, true, 1000); + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); p.arm(RECOVERY_DOMAINS, 1000, 50, true); + p.heartbeat(1000 + age); } + RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); + assertCounts(p, age <= 60000 ? 2 : 0, age <= 60000 ? 2 : 0); + } + // A fresh new sample, rather than an old value re-used by a heartbeat, + // restores eligibility even when battery measurements are infrequent. + initial(r); + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); p.arm(RECOVERY_DOMAINS, 0, 50, true); + p.heartbeat(70000); p.updateBattery(70000, 51, true); p.heartbeat(70001); } + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 2, 2); } + } else if (scenario == 4) { + for (ResetKind reset : {ResetKind::Cold, ResetKind::Intentional, ResetKind::Wake, + ResetKind::Unknown}) { + counted(r, 2); + RecoveryPolicy p(r); p.begin(reset, 0); assertCounts(p, 0, 0); + p.arm(RECOVERY_DOMAINS, 0, 50, true); + RecoveryPolicy next(r); next.begin(ResetKind::Crash, 0); assertCounts(next, 1, 1); + } + } else if (scenario == 5) { + counted(r, 2); + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); p.clearDomain(RECOVERY_DOMAINS); + p.arm(RECOVERY_DOMAINS, 0, 90, true); p.markCleanReset(); } + // A clean marker beats even a hardware reset cause labelled as a crash. + RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 0, 0); + } else if (scenario == 6) { + counted(r, 2); + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 3, 3, RECOVERY_DOMAINS); } + // Sticky fallback survives power loss, sleep, software reset, unknown cause. + for (ResetKind reset : {ResetKind::Cold, ResetKind::Intentional, ResetKind::Wake, + ResetKind::Unknown, ResetKind::Crash}) { + RecoveryPolicy p(r); p.begin(reset, 0); assertCounts(p, 0, 0, RECOVERY_DOMAINS); + } + // With retention lost, the flash-persisted fallback still applies. + std::memset(&r, 0xff, sizeof(r)); + RecoveryPolicy p(r); p.begin(ResetKind::Cold, RECOVERY_RADIO | 0x80); + assertCounts(p, 0, 0, RECOVERY_RADIO); + } else if (scenario == 7) { + // Every single corrupted bit of a valid 32-byte record is fail-closed. + initial(r); + const RecoveryRecord valid = r; + for (size_t byte = 0; byte < sizeof(r); ++byte) { + for (unsigned bit = 0; bit < 8; ++bit) { + r = valid; + reinterpret_cast(&r)[byte] ^= 1u << bit; + RecoveryPolicy p(r); p.begin(ResetKind::Crash, RECOVERY_RADIO); + assertCounts(p, 0, 0, RECOVERY_RADIO); + } + } + // Uninitialised memory and an interrupted commit cannot create a streak. + for (unsigned fill : {0u, 0x55u, 0xaau, 0xffu}) { + std::memset(&r, fill, sizeof(r)); + RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 0, 0); + } + r = valid; r.magic = 0; + RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 0, 0); + } else if (scenario == 8) { + counted(r, 1); + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 2, 2); + p.arm(RECOVERY_DOMAINS, 123, 90, true); + p.tick(123 + 299999, 90, true); assertCounts(p, 2, 2); + p.tick(123 + 300000, 90, true); assertCounts(p, 0, 0); + p.tick(123 + 301000, 90, true); assertCounts(p, 0, 0); } + // Healthy operation breaks the streak; a later crash starts a new one. + RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 1, 1); + } else if (scenario == 9) { + // Both the stability window and sample age work across millis() rollover. + const uint32_t start = 0xffff0000u; + initial(r, RECOVERY_DOMAINS, 90, true, start); + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); p.arm(RECOVERY_DOMAINS, start, 90, true); + p.tick(start + 299999u, 90, true); assertCounts(p, 1, 1); + p.tick(start + 300000u, 90, true); assertCounts(p, 0, 0); } + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 1, 1); } + for (uint32_t age : {60000u, 60001u}) { + initial(r, RECOVERY_DOMAINS, 90, true, 0xfffffff0u); + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); + p.arm(RECOVERY_DOMAINS, 0xfffffff0u, 90, true); p.heartbeat(0xfffffff0u + age); } + RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); + assertCounts(p, age <= 60000 ? 2 : 0, age <= 60000 ? 2 : 0); + } + } else if (scenario == 10) { + // A radio DC-DC streak does not accuse a processor already using LDO. + counted(r, 2, RECOVERY_RADIO); + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 0, 3, RECOVERY_RADIO); + p.arm(RECOVERY_MCU, 0, 90, true); } + for (unsigned n = 1; n <= 3; ++n) { + RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); + assertCounts(p, n, 0, RECOVERY_RADIO | (n == 3 ? RECOVERY_MCU : 0)); + if (n < 3) p.arm(RECOVERY_MCU, 0, 90, true); + } + } else if (scenario == 11) { + // Disabling one domain breaks only its consecutive-crash streak. + counted(r, 1); + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 2, 2); + p.arm(RECOVERY_RADIO, 0, 90, true); } + RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 0, 3, RECOVERY_RADIO); + assert(p.crashCount(RECOVERY_DOMAINS) == 0 && p.crashCount(0x80) == 0); + } else if (scenario == 12) { + counted(r, 2); + RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 3, 3, RECOVERY_DOMAINS); + p.clearDomain(RECOVERY_RADIO | 0x80); assertCounts(p, 3, 0, RECOVERY_MCU); + p.arm(RECOVERY_RADIO, 0, 90, true); + RecoveryPolicy next(r); next.begin(ResetKind::Crash, RECOVERY_MCU); + assertCounts(next, 0, 1, RECOVERY_MCU); + next.clearDomain(RECOVERY_MCU); assertCounts(next, 0, 1); + next.clearDomain(0); assertCounts(next, 0, 1); + } else if (scenario == 13) { + initial(r); + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 1, 1); } + // Crash before the next arm() cannot blame a regulator not yet enabled. + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 0, 0); + p.arm(0, 0, 90, true); } + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 0, 0); } + } else if (scenario == 14) { + // Independently persisted and retained fallbacks are merged, never toggled. + counted(r, 2, RECOVERY_MCU); + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, RECOVERY_RADIO); + assertCounts(p, 3, 0, RECOVERY_DOMAINS); } + RecoveryPolicy p(r); p.begin(ResetKind::Cold, RECOVERY_MCU); + assertCounts(p, 0, 0, RECOVERY_DOMAINS); + } else if (scenario == 15) { + initial(r); + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); p.arm(RECOVERY_DOMAINS, 100, 90, true); + p.updateBattery(101, 90, true); } + // A sample apparently newer than the last heartbeat is conservative until + // that heartbeat catches up; subtraction cannot turn it into a fresh age. + { RecoveryPolicy p(r); p.begin(ResetKind::Crash, 0); assertCounts(p, 0, 0); } + } else assert(false); + std::cout << "PASS: regulator recovery " << scenario << '\n'; +} +''' + + +class RegulatorRecoveryTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + compiler = os.environ.get("CXX") or shutil.which("g++") or shutil.which("clang++") + if compiler is None: + raise unittest.SkipTest("a host C++11 compiler is required") + cls.folder = tempfile.TemporaryDirectory(prefix="regulator-recovery-") + cls.addClassCleanup(cls.folder.cleanup) + work = Path(cls.folder.name) + source = work / "test.cpp" + source.write_text(HARNESS, encoding="utf-8") + cls.binary = work / "test.exe" + built = subprocess.run( + [compiler, "-std=c++11", "-Wall", "-Wextra", "-Werror", *SANITIZER_FLAGS, + "-I" + str(ROOT / "src"), str(source), "-o", str(cls.binary)], + capture_output=True, text=True, timeout=60, + ) + if built.returncode: + raise AssertionError(built.stdout + built.stderr) + + def test_retained_state_machine(self): + scenarios = ( + "third crash latches fallback and never reverses it", + "50 percent threshold and invalid percentage", + "unknown battery and USB-only readings do not count", + "fresh sample boundary and heartbeat timestamp separation", + "cold intentional wake and unknown causes break streak", + "clean reset marker defeats misleading reset reason", + "sticky fallback survives normal resets and retention loss", + "every record bit corruption fails closed", + "five minute stability clears the streak", + "stability and freshness survive timer rollover", + "radio and MCU learn fallback independently", + "inactive regulator does not accrue crashes", + "manual domain change clears only its fallback and count", + "a boot is disarmed until the actual modes are selected", + "saved and retained fallback masks merge", + "future sample is ineligible until heartbeat catches up", + ) + for number, scenario in enumerate(scenarios): + with self.subTest(scenario=scenario): + checked = subprocess.run([str(self.binary), str(number)], + capture_output=True, text=True, timeout=10) + self.assertEqual(checked.returncode, 0, checked.stdout + checked.stderr) + self.assertIn(f"PASS: regulator recovery {number}", checked.stdout) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/test_regulator_settings.py b/test/test_regulator_settings.py new file mode 100644 index 000000000..4bf6f48f1 --- /dev/null +++ b/test/test_regulator_settings.py @@ -0,0 +1,237 @@ +"""Execute the real regulator settings and retained-platform implementations.""" +from pathlib import Path +import os +import shutil +import subprocess +import tempfile +import unittest +from test_radio_receive_contract import method +from test_serial_wifi_sessions import SANITIZER_FLAGS + +ROOT = Path(__file__).resolve().parents[1] + +FILESYSTEM = r''' +#pragma once +#include +#include +#include +#include +#include +#include +struct MockFS; +struct File { + MockFS* fs=nullptr;std::string name;size_t cursor=0;bool valid=false; + File()=default;explicit File(MockFS& fs):fs(&fs) {} + File(MockFS* fs,const std::string& name,bool valid):fs(fs),name(name),valid(valid) {} + bool open(const char*,int); + explicit operator bool() const { return valid; } + size_t size() const; + size_t read(uint8_t*,size_t); + size_t write(const uint8_t*,size_t); + void close() {} +}; +struct MockFS { + std::map> files; + bool fail_open=false,fail_write=false,fail_restore=false; + std::string fail_rename_from; + unsigned writes=0,renames=0; + bool exists(const char* name) const { return files.count(name); } + bool remove(const char* name) { return files.erase(name)!=0; } + bool rename(const char* from,const char* to) { + ++renames; + if(fail_rename_from==from || (fail_restore && std::string(from)=="/regulator_v1.bak"))return false; + if(!files.count(from)||files.count(to))return false; + files[to]=files[from];files.erase(from);return true; + } + File open(const char* name,const char* mode,bool=false) { + if(fail_open)return File(); + if(*mode=='w'){ files[name].clear();return File(this,name,true); } + return File(this,name,exists(name)); + } +}; +inline bool File::open(const char* key,int flags) { + File f=fs->open(key,flags?"w":"r");*this=f;return valid; +} +inline size_t File::size() const { return valid ? fs->files[name].size() : 0; } +inline size_t File::read(uint8_t* bytes,size_t length) { + if(!valid)return 0; + const auto& data=fs->files[name];length=std::min(length,data.size()-cursor); + memcpy(bytes,data.data()+cursor,length);cursor+=length;return length; +} +inline size_t File::write(const uint8_t* bytes,size_t length) { + if(!valid)return 0; + ++fs->writes;if(fs->fail_write)length/=2; + auto& data=fs->files[name];data.insert(data.end(),bytes,bytes+length);return length; +} +#define FILESYSTEM MockFS +#define FILE_O_READ 0 +#define FILE_O_WRITE 1 +''' + +DISPATCHER = r''' +#pragma once +#include +#include +#include +namespace mesh { +struct MainBoard { + uint8_t modes=3;power::RegulatorMode default_mode=power::RegulatorMode::Dcdc; + power::RegulatorMode active=power::RegulatorMode::Default; + unsigned applies=0;bool dcdc_applied=false;uint16_t mv=3600; + std::vector samples;unsigned sample_index=0; + uint8_t mcuRegulatorModes() const { return modes; } + power::RegulatorMode defaultMcuRegulatorMode() const { return default_mode; } + power::RegulatorMode activeMcuRegulatorMode() const { return active; } + bool applyMcuRegulator(power::RegulatorMode mode) { + ++applies;if(!power::regulatorModeSupported(modes,mode))return false; + active=mode==power::RegulatorMode::Default ? default_mode : mode; + dcdc_applied|=active==power::RegulatorMode::Dcdc;return true; + } + uint16_t getBattMilliVolts() { + return samples.empty()?mv:samples[sample_index++%samples.size()]; + } + void resetHardware() { active=power::RegulatorMode::Default;sample_index=0; } +}; +struct Radio { + uint8_t modes=3;power::RegulatorMode default_mode=power::RegulatorMode::Dcdc; + power::RegulatorMode active=power::RegulatorMode::Default,boot=power::RegulatorMode::Default; + unsigned configures=0,inits=0;bool locked=false,dcdc_applied=false; + uint8_t regulatorModes() const { return modes; } + power::RegulatorMode defaultRegulatorMode() const { return default_mode; } + power::RegulatorMode activeRegulatorMode() const { return active; } + bool configureBootRegulator(power::RegulatorMode mode) { + ++configures;if(locked||!power::regulatorModeSupported(modes,mode))return false; + boot=mode;return true; + } + void initialize() { + ++inits;locked=true;active=boot==power::RegulatorMode::Default?default_mode:boot; + dcdc_applied|=active==power::RegulatorMode::Dcdc; + } + void resetHardware() { active=boot=power::RegulatorMode::Default;locked=false; } +}; +} +''' + +ESP_SYSTEM = r''' +#pragma once +extern int mock_reset_reason; +enum { ESP_RST_UNKNOWN=0,ESP_RST_POWERON,ESP_RST_EXT,ESP_RST_SW,ESP_RST_PANIC, + ESP_RST_INT_WDT,ESP_RST_TASK_WDT,ESP_RST_WDT,ESP_RST_DEEPSLEEP,ESP_RST_BROWNOUT }; +inline int esp_reset_reason() { return mock_reset_reason; } +''' + + +class RegulatorSettingsTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + compiler = os.environ.get('CXX') or shutil.which('g++') or shutil.which('clang++') + if not compiler: + raise unittest.SkipTest('native C++ compiler unavailable') + cls.temp = tempfile.TemporaryDirectory(prefix='meshcore-regulator-settings-') + cls.addClassCleanup(cls.temp.cleanup) + folder = Path(cls.temp.name) + headers = { + 'helpers/IdentityStore.h': FILESYSTEM, + 'Dispatcher.h': DISPATCHER, + 'Arduino.h': '#pragma once\n#include \nextern uint32_t mock_now;\ninline uint32_t millis(){return mock_now;}\ninline void delay(unsigned ms){mock_now+=ms;}\n', + 'esp_system.h': ESP_SYSTEM, + 'esp_attr.h': '#pragma once\n#define RTC_NOINIT_ATTR\n', + 'soc/soc_caps.h': '#pragma once\n#ifndef SOC_RTC_SLOW_MEM_SUPPORTED\n#define SOC_RTC_SLOW_MEM_SUPPORTED 1\n#endif\n#define SOC_RTC_FAST_MEM_SUPPORTED 0\n', + 'hardware/watchdog.h': '#pragma once\nextern bool mock_watchdog_enabled,mock_watchdog_any;\ninline bool watchdog_enable_caused_reboot(){return mock_watchdog_enabled;}\ninline bool watchdog_caused_reboot(){return mock_watchdog_any;}\n', + } + for name, content in headers.items(): + path = folder / name + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(content) + cls.binaries = {} + for platform, flags in {'esp32': ['-DESP32=1'], + 'rp2040': ['-DRP2040_PLATFORM=1'], + 'nrf52': ['-DNRF52_PLATFORM=1','-DNRF52_POWER_MANAGEMENT=1'], + 'no_retention': ['-DESP32=1','-DSOC_RTC_SLOW_MEM_SUPPORTED=0']}.items(): + binary = folder / platform + result = subprocess.run([compiler, '-std=c++17','-Wall','-Wextra','-Werror', + *SANITIZER_FLAGS,*flags,'-I',str(folder),'-I',str(ROOT/'src'), + str(ROOT/'test/fixtures/regulator_settings_native.cpp'),'-o',str(binary)], + text=True,capture_output=True,timeout=45) + if result.returncode: + raise AssertionError(result.stdout+result.stderr) + cls.binaries[platform] = binary + + def scenario(self, scenario): + for platform, binary in self.binaries.items(): + if platform == 'no_retention': + continue + with self.subTest(platform=platform, scenario=scenario): + result = subprocess.run([str(binary),scenario],text=True,capture_output=True,timeout=10) + self.assertEqual(result.returncode,0,result.stdout+result.stderr) + + def test_selections_save_both_domains_without_altering_active_hardware(self): + self.scenario('select') + + def test_three_crashes_at_fifty_percent_latch_both_domains_across_cold_boot(self): + self.scenario('fallback') + + def test_domain_choices_and_fallbacks_are_independent(self): + self.scenario('domains') + + def test_below_fifty_missing_stale_and_outlier_battery_readings_do_not_count(self): + self.scenario('battery') + + def test_intentional_reset_breaks_streak_and_preserves_unsaved_fallback(self): + self.scenario('clean') + + def test_short_writes_open_and_rename_failures_recover_last_committed_settings(self): + self.scenario('atomic') + + def test_crc_length_validation_and_backup_recovery(self): + self.scenario('corruption') + + def test_unsupported_dcdc_is_rejected_without_touching_either_regulator(self): + self.scenario('unsupported') + + def test_command_prefix_boundaries_syntax_and_bounded_reply(self): + self.scenario('bounds') + + def test_actual_esp_and_pico_reset_classification(self): + self.scenario('platform') + + def test_five_healthy_minutes_break_old_crash_streak(self): + self.scenario('healthy') + + def test_failed_fallback_save_retries_and_then_survives_power_loss(self): + self.scenario('retry') + + def test_missing_primary_store_rejects_persistence_without_live_mode_changes(self): + self.scenario('no_store') + + def test_failed_radio_initialization_is_not_counted_as_running_dcdc(self): + self.scenario('failed_radio') + + def test_missing_rtc_retention_disables_automatic_recovery(self): + result = subprocess.run([str(self.binaries['no_retention']),'platform_unsupported'], + text=True,capture_output=True,timeout=10) + self.assertEqual(result.returncode,0,result.stdout+result.stderr) + + def test_all_four_roles_initialize_once_before_first_radio_and_service_loop(self): + for role in ('companion_radio','simple_repeater','simple_room_server','simple_sensor'): + with self.subTest(role=role): + source = (ROOT/f'examples/{role}/main.cpp').read_text() + setup = method(source,'\nvoid setup(') + loop = method(source,'\nvoid loop(') + hook = 'mesh::power::beginRegulatorSettings(board, radio_driver, ' + self.assertEqual(setup.count(hook),1) + self.assertLess(setup.index('board.begin()'),setup.index(hook)) + self.assertLess(setup.index(hook),setup.index('radio_init()')) + if role == 'simple_repeater': + self.assertEqual(loop.count('serviceCommandInterfaces()'),1) + loop = method(source,'serviceCommandInterfaces() {') + self.assertEqual(loop.count('mesh::power::serviceRegulatorSettings()'),1) + self.assertLess(loop.index('mesh::power::serviceRegulatorSettings()'),loop.index('board.loop()')) + cli = (ROOT/'src/helpers/CommonCLI.cpp').read_text() + self.assertIn('handleRegulatorCommand(command, reply, 157)',cli) + other = (ROOT/'examples/kiss_modem/main.cpp').read_text() + self.assertNotIn('beginRegulatorSettings(',other) + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_t096_regulator.py b/test/test_t096_regulator.py index 97c01bd7f..995a5419a 100644 --- a/test/test_t096_regulator.py +++ b/test/test_t096_regulator.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Execute T096 startup and the real DC/DC initializer with counted SDK I/O.""" +"""T096 board startup must defer DC/DC until saved regulator policy is loaded.""" from pathlib import Path import os import subprocess @@ -12,7 +12,7 @@ ROOT = Path(__file__).resolve().parents[1] class T096RegulatorTests(unittest.TestCase): - def test_startup_selects_dcdc_before_voltage_check_with_or_without_softdevice(self): + def test_startup_defers_dcdc_until_after_battery_hardware_is_ready(self): methods = body((ROOT / 'src/helpers/NRF52Board.cpp').read_text(), 'void NRF52BoardDCDC::begin()') methods += body((ROOT / 'variants/heltec_t096/T096Board.cpp').read_text(), @@ -42,14 +42,17 @@ void delay(unsigned) {} struct Bus { void setPins(int, int) {} void begin() {} } Wire; struct Peripheral { void begin() {} void init() {} }; struct Config {} power_config; -struct NRF52Board { void begin() { ++base_calls; } }; +struct NRF52Board { + bool cpu_dcdc_supported = false; + void begin() { ++base_calls; } +}; struct NRF52BoardDCDC : NRF52Board { void begin(); }; struct T096Board : NRF52BoardDCDC { Peripheral periph_power, loRaFEMControl; void begin(); void checkBootVoltage(const Config*) { ++voltage_checks; - assert(softdevice ? sdk_calls == 1 : power.DCDCEN == 1); + assert(sdk_calls == 0 && power.DCDCEN == 0); } }; @METHODS@ @@ -59,8 +62,8 @@ int main() { T096Board board; board.begin(); assert(base_calls == 1 && voltage_checks == 1); - assert(sdk_calls == softdevice); - assert(power.DCDCEN == (softdevice ? 0U : 1U)); + assert(board.cpu_dcdc_supported); + assert(sdk_calls == 0 && power.DCDCEN == 0); } } ''' diff --git a/test/test_tower_auto_integration.py b/test/test_tower_auto_integration.py index f0a183c5d..b62bc43d2 100644 --- a/test/test_tower_auto_integration.py +++ b/test/test_tower_auto_integration.py @@ -222,6 +222,7 @@ int main() { ''' HANDOFF_SETUP = r''' +extern "C" void meshRegulatorCleanReset() __attribute__((weak)); #include #include #define OTA_TOWER_AUTO_STORE 1 diff --git a/test/test_webconfig_regulators.py b/test/test_webconfig_regulators.py new file mode 100644 index 000000000..de9acfe43 --- /dev/null +++ b/test/test_webconfig_regulators.py @@ -0,0 +1,189 @@ +"""Exercise regulator JSON, authenticated batch reboot and shipped browser UI.""" +import json +from pathlib import Path +import unittest + +from test_replay_reset_integration import extract_braced +import test_webconfig_lost_reply as batch_fixture +import test_webconfig_recovery_auth as auth_fixture +import test_webconfig_ui_runtime as browser_fixture + +ROOT = Path(__file__).resolve().parents[1] + + +class WebConfigRegulatorTest(unittest.TestCase): + compile_run = auth_fixture.WebConfigRecoveryAuthTest.compile_run + setup_values = browser_fixture.WebConfigUiRuntimeTest.setup_values + run_page = browser_fixture.WebConfigUiRuntimeTest.run_page + + def test_actual_snapshot_and_authenticated_reboot_batch(self): + # Reuse the actual HTTP/config parser fixture, rather than a duplicate + # batch model. The unrelated Lost-reply test main is replaced below. + source = batch_fixture.LostReplyWebConfigTest.fixture(self) + source = source[:source.index("String writeBody(")] + server = (ROOT / "src/helpers/esp32/WebConfigServer.cpp").read_text() + snapshot = extract_braced(server, "static void webConfigRegulatorsSnapshot(") + self.compile_run(source + r''' +#include +namespace mesh { namespace power { +uint8_t modes[2] = {0, 3}; +RegulatorMode requested[2] = {RegulatorMode::Default, RegulatorMode::Dcdc}; +RegulatorMode active[2] = {RegulatorMode::Default, RegulatorMode::Ldo}; +bool fallback[2] = {false, true}, recovery = true; +const char* regulatorModeName(RegulatorMode mode) { + return mode == RegulatorMode::Dcdc ? "dcdc" : mode == RegulatorMode::Ldo ? "ldo" : "auto"; +} +uint8_t configuredRegulatorModes(bool mcu) { return modes[mcu ? 0 : 1]; } +RegulatorMode requestedRegulatorMode(bool mcu) { return requested[mcu ? 0 : 1]; } +RegulatorMode activeRegulatorMode(bool mcu) { return active[mcu ? 0 : 1]; } +const char* activeRegulatorModeName(bool mcu) { + auto mode = activeRegulatorMode(mcu); + return mode == RegulatorMode::Default ? "unknown" : regulatorModeName(mode); +} +bool regulatorFallbackActive(bool mcu) { return fallback[mcu ? 0 : 1]; } +bool regulatorRecoveryAvailable() { return recovery; } +}} +''' + snapshot + r''' +int main() { + using namespace mesh::power; + JsonDocument doc; + webConfigRegulatorsSnapshot(doc.to()); + assert(doc["recovery"].as()); + assert(doc["mcu"]["modes"].as() == 0); + assert(strcmp(doc["mcu"]["active"].as(), "unknown") == 0); + assert(doc["radio"]["modes"].as() == 3); + assert(strcmp(doc["radio"]["requested"].as(), "dcdc") == 0); + assert(strcmp(doc["radio"]["active"].as(), "ldo") == 0); + assert(doc["radio"]["fallback"].as()); + modes[0] = 3; modes[1] = 2; recovery = false; + requested[0] = active[0] = RegulatorMode::Dcdc; + webConfigRegulatorsSnapshot(doc.to()); + assert(!doc["recovery"].as() && doc["mcu"]["modes"].as() == 3); + assert(doc["radio"]["modes"].as() == 2); + assert(strcmp(doc["mcu"]["active"].as(), "dcdc") == 0); + assert(mesh::esp32::managementPassword::publish("password")); + for (const char* key : {"mcu.regulator", "radio.regulator"}) { + assert(wcIsAllowedSetKey(key) && wcSetKeyRequiresReboot(key)); + WebConfigServer server; + String body = String("{\"reqid\":\"0123456789abcdef\",\"reboot\":false,\"set\":{\"") + key + "\":\"ldo\"}}"; + AsyncWebServerRequest unauthenticated(body); unauthenticated.header.cookies.clear(); + server.handleConfigPost(&unauthenticated); + assert(unauthenticated.status == 401 && server._batch_count == 0); + AsyncWebServerRequest save(body); server.handleConfigPost(&save); + assert(save.status == 202 && server._batch_count == 1 && server._batch_reboot); + assert(String(server._batch[0].cmd) == String("set ") + key + " ldo"); + assert(String(server._batch[0].key) == key); + AsyncWebServerRequest replay(body); server.handleConfigPost(&replay); + assert(replay.status == 202 && server._batch_count == 1 && server._batch_reboot); + } + for (const char* key : {"mcu.regulator.extra", "radio.regulator.extra", "mcu.regulator\nreboot", + "MCU.regulator", "radio.regulator ", "regulator"}) { + assert(!wcIsAllowedSetKey(key) && !wcSetKeyRequiresReboot(key)); + } + assert(!wcSetKeyRequiresReboot(nullptr)); +} +''') + + def test_ldo_only_radio_hides_dc_dc_and_unsupported_processor(self): + status, config = self.setup_values() + status["mode"] = "lan" + config["regulators"] = { + "recovery": False, + "mcu": {"modes": 0}, + "radio": {"modes": 2, "requested": "ldo", "active": "ldo", "fallback": False}, + } + prelude = r'''''' % (json.dumps(status), json.dumps(config)) + dom = self.run_page(prelude) + for check in ("regulator-visible", "mcu-hidden", "mcu-disabled", "dcdc-unavailable", "recovery-unavailable"): + self.assertIn(f'data-test-{check}="true"', dom) + self.assertIn('data-test-radio-value="ldo"', dom) + self.assertIn('data-test-radio-status="Active: LDO. Automatic fallback: off."', dom) + + def test_clear_fallback_and_mode_change_use_existing_save_and_reboot_flow(self): + status, config = self.setup_values() + status["mode"] = "lan" + config["regulators"] = { + "recovery": True, + "mcu": {"modes": 3, "requested": "dcdc", "active": "dcdc", "fallback": False}, + "radio": {"modes": 3, "requested": "auto", "active": "ldo", "fallback": True}, + } + prelude = r'''''' % (json.dumps(status), json.dumps(config)) + dom = self.run_page(prelude) + for key, value in (("mcu-loaded", "dcdc"), ("clear-visible", "true"), + ("unchanged-mode-resubmitted", "auto"), ("posts-before-save", "0"), + ("posts", "1"), ("post-mcu", "ldo"), ("post-radio", "auto"), + ("post-reboot", "true"), ("reboot-visible", "true"), + ("regulator-reboot-message", "true")): + self.assertIn(f'data-test-{key}="{value}"', dom) + self.assertIn('data-test-fallback-status="Active: LDO. Automatic fallback: on (LDO)."', dom) + + def test_older_firmware_without_regulator_metadata_hides_the_card(self): + status, config = self.setup_values() + status["mode"] = "lan" + config.pop("regulators", None) + prelude = r'''''' % (json.dumps(status), json.dumps(config)) + dom = self.run_page(prelude) + self.assertIn('data-test-regulator-hidden="true"', dom) + self.assertIn('data-test-radio-disabled="true"', dom) + + +if __name__ == "__main__": + unittest.main() diff --git a/variants/meshtiny/MeshtinyBoard.h b/variants/meshtiny/MeshtinyBoard.h index e3f5d4dbe..2d3e5de96 100644 --- a/variants/meshtiny/MeshtinyBoard.h +++ b/variants/meshtiny/MeshtinyBoard.h @@ -32,7 +32,7 @@ public: const char *getManufacturerName() const override { return "Meshtiny"; } - void reboot() override { NVIC_SystemReset(); } + void reboot() override { NRF52Board::reboot(); } void shutdownPeripherals() override { NRF52Board::shutdownPeripherals(); diff --git a/webui/index.html b/webui/index.html index e125e9522..29328ac97 100644 --- a/webui/index.html +++ b/webui/index.html @@ -429,6 +429,19 @@ body.tab-cli{padding-bottom:0}
Device power savingReduce device and GPS idle power
+
+

Power regulators

+
Auto follows the board default. Changes are saved and restart the node. Selecting a mode clears that regulator's automatic fallback.
+
+ +
+
+
+ +
+
+
+
RX power savingDuty-cycle the LoRa receiver; off keeps continuous receive
@@ -910,6 +923,8 @@ function cfgVal(k){ // map a `set` key to its current value string, from st.cfg case"radio.fem.rxgain":return r.fem_rxgain?"on":"off"; case"radio.rxps":return rxpsCfgValue(r); case"powersaving":return r.powersaving?"on":"off"; + case"mcu.regulator":return ((c.regulators||{}).mcu||{}).requested||"auto"; + case"radio.regulator":return ((c.regulators||{}).radio||{}).requested||"auto"; case"display.mode":return (st.cfg.display||{}).mode||"button"; case"display.rotation":return String((st.cfg.display||{}).rotation||0); case"display.timeout":return String((st.cfg.display||{}).timeout||15); @@ -1044,6 +1059,33 @@ function radioCombo(){ var p={};$$("[data-rg]").forEach(function(el){p[el.dataset.rg]=el.value}); return p.freq+","+p.bw+","+p.sf+","+p.cr; } +function syncRegulators(c){ + var regulators=c.regulators||{},supported=false; + ["mcu","radio"].forEach(function(domain){ + var entry=regulators[domain]||{},modes=Number(entry.modes)||0; + var select=$('[data-k="'+domain+'.regulator"]'); + $("#"+domain+"-regulator-setting").classList.toggle("hide",!modes); + select.disabled=!modes;supported=supported||!!modes; + Array.prototype.forEach.call(select.options,function(option){ + var available=option.value==="auto"||(option.value==="dcdc"&&(modes&1))||(option.value==="ldo"&&(modes&2)); + option.hidden=!available;option.disabled=!available; + }); + var active=entry.active==="dcdc"?"DC-DC":entry.active==="ldo"?"LDO":"unknown"; + $("#"+domain+"-regulator-status").textContent="Active: "+active+". Automatic fallback: "+(entry.fallback?"on (LDO)":"off")+"."; + $("#"+domain+"-regulator-clear").classList.toggle("hide",!modes||!entry.fallback); + }); + $("#regulator-settings").classList.toggle("hide",!supported); + $("#regulator-recovery-status").textContent=regulators.recovery + ?"Recovery switches a DC-DC regulator to LDO after three consecutive crashes with a fresh battery reading of at least 50%. It keeps LDO until you select a mode again." + :"Automatic crash recovery is unavailable on this platform."; +} +function resetRegulatorFallback(domain){ + var key=domain+".regulator",select=$('[data-k="'+key+'"]'); + if(!select||select.disabled)return; + // Re-send even an unchanged selection so a learned fallback can be cleared + // through the normal authenticated save/result/reboot flow. + st.dirty[key]=select.value;select.classList.add("dirty");updateSaveBar(); +} function loadConfig(loadCapture){ var epoch=++st.configEpoch; if(loadCapture)loadCapture.loadEpoch=epoch; @@ -1053,6 +1095,7 @@ function loadConfig(loadCapture){ if(epoch!==st.configEpoch)return false; st.cfg=c;st.orig={};st.dirty={};st.skipRadio=false;st.skipMqtt=false; st.wifiPasswordAutoCleared=false; + syncRegulators(c); if(st.hasMqtt){buildSlots("#app-slots");buildSlots("#wz-slots")} $$("[data-k]").forEach(function(el){ var k=el.dataset.k,v=cfgVal(k); @@ -1327,7 +1370,7 @@ function saveChanges(extra,cb){ // Applying new station credentials necessarily drops this page. Reboot // after a successful batch so the bridge joins with the complete SSID and // password together instead of reconnecting between the two writes. - if((extra&&extra.reboot)||("wifi.ssid" in setmap)||("wifi.pwd" in setmap)||("espnow.channel" in setmap)||("bluetooth.mac" in setmap)||("bluetooth.stealth" in setmap))body.reboot=true; + if((extra&&extra.reboot)||("wifi.ssid" in setmap)||("wifi.pwd" in setmap)||("espnow.channel" in setmap)||("bluetooth.mac" in setmap)||("bluetooth.stealth" in setmap)||("mcu.regulator" in setmap)||("radio.regulator" in setmap))body.reboot=true; if(Object.keys(setmap).length===0&&!body.reboot){toast("Nothing to save");return} var reqid=mkReqId();body.reqid=reqid; var auth={password:setmap.password||"",attempted:false,view:$("#v-wizard").classList.contains("hide")?"#v-app":"#v-wizard"}; @@ -1365,7 +1408,7 @@ function saveChanges(extra,cb){ }); } function appSave(){ - var rebootChanged=("wifi.ssid" in st.dirty)||("wifi.pwd" in st.dirty)||("espnow.channel" in st.dirty)||("bluetooth.mac" in st.dirty)||("bluetooth.stealth" in st.dirty); + var rebootChanged=("wifi.ssid" in st.dirty)||("wifi.pwd" in st.dirty)||("espnow.channel" in st.dirty)||("bluetooth.mac" in st.dirty)||("bluetooth.stealth" in st.dirty)||("mcu.regulator" in st.dirty)||("radio.regulator" in st.dirty); var pwdErr=adminPwdError(rebootChanged); if(pwdErr){ $('#tabs button[data-t="radio"]').click(); @@ -1423,12 +1466,15 @@ function pollResult(cb,errs,idles,acked,reqid,submitted,auth){ st.dirty={}; var bluetoothAddressChanged=submitted&&("bluetooth.mac" in submitted); var bluetoothStealthChanged=submitted&&("bluetooth.stealth" in submitted); + var regulatorChanged=submitted&&(("mcu.regulator" in submitted)||("radio.regulator" in submitted)); showReboot(r.wifi_ip ? "The node joined the selected WiFi. This page and address stay visible while it reboots. Reconnect your phone or laptop to that network, then open the address." : bluetoothAddressChanged ? "The node is restarting with its new Bluetooth address. Forget its old Bluetooth entry, scan again, and pair with the new identity." : bluetoothStealthChanged ? "The node is restarting with the saved stealth flag. Its address policy is unchanged. When enabling stealth, pair once; afterward reconnect using the saved device." + : regulatorChanged + ? "The node is restarting to apply the saved power regulator mode. This page will try to reconnect automatically." : "The node is restarting with the saved WiFi settings. Reconnect to that network and open the node at its router-assigned address.", false,bluetoothAddressChanged?"Bluetooth address saved [OK] - rebooting":bluetoothStealthChanged?"Bluetooth stealth saved [OK] - rebooting":"Settings saved [OK] - rebooting",r.wifi_ip,rebootSeconds(r)); reauthAfterReceipt(); @@ -1451,6 +1497,7 @@ function pollResult(cb,errs,idles,acked,reqid,submitted,auth){ function loadConfigSoft(){ // re-sync origin values without clobbering result chips api("/api/config").then(function(c){ st.cfg=c; + syncRegulators(c); $$("[data-k]").forEach(function(el){ var k=el.dataset.k,stored=cfgVal(k); st.orig[k]=stored; @@ -2069,6 +2116,8 @@ var CLI_KEYS=[ ["webui","WiFi settings website",0,"on|off"], ["usb.logging","USB logging",0,"on|off"], ["powersaving","Device power saving",0,"on|off"], + ["mcu.regulator","Processor regulator (supported boards; reboot required)",0,"auto|dcdc|ldo"], + ["radio.regulator","LoRa regulator (supported boards; reboot required)",0,"auto|dcdc|ldo"], ["gps","GPS power",0,"on|off"], ["logging.output","USB and MQTT output selection",0,"off|usb|wifi|both"], ["mqtt.enabled","MQTT master switch (keeps broker settings)",0,"on|off"], @@ -2229,6 +2278,8 @@ var CLI_COMPANION_KEYS=[ ["radio.fem.txgain","Front-end module TX gain",0,"on|off"], ["radio.rxps","Configured RX power saving",0,"on|off"], ["powersaving","Device power saving",0,"on|off"], + ["mcu.regulator","Processor regulator (supported boards; reboot required)",0,"auto|dcdc|ldo"], + ["radio.regulator","LoRa regulator (supported boards; reboot required)",0,"auto|dcdc|ldo"], ["usb.logging","USB packet logging (logging-enabled builds)",0,"on|off"], ["display.rotation","Display rotation (0 restores the board default)",0,"0|90|180|270"], ["bluetooth.name","Bluetooth name",0],