diff --git a/.github/workflows/run-unit-tests.yml b/.github/workflows/run-unit-tests.yml index ea3627b1..98f21255 100644 --- a/.github/workflows/run-unit-tests.yml +++ b/.github/workflows/run-unit-tests.yml @@ -41,6 +41,13 @@ jobs: - name: Verify nRF52 UF2-reset CLI coverage run: python3 -B test/test_nrf52_uf2reset_cli.py + - name: Verify Companion Bluetooth settings and WebConfig + run: | + 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_ui_runtime.py + - name: Upload Test Results # Upload test results even if the test step failed. if: always() diff --git a/docs/cli_commands.md b/docs/cli_commands.md index b99f434b..658b3bba 100644 --- a/docs/cli_commands.md +++ b/docs/cli_commands.md @@ -1185,7 +1185,7 @@ the frame and reply format. **Usage:** - `get bluetooth.mac` -- `set bluetooth.mac ` +- `set bluetooth.mac ` `get ble.mac` and `set ble.mac ...` are accepted aliases. The setting is available on every Companion build that includes Bluetooth. @@ -1195,6 +1195,7 @@ available on every Companion build that includes Bluetooth. | `C2:11:22:33:44:55` | Save and use that custom address. | | `random` | Generate one random address now, save it, and reuse it on later boots. | | `random-every-boot` | Generate a new address once at each boot. `random everyboot` is also accepted. | +| `random-after-connect` | Keep one random address through unused boots. After an authenticated connection, arm a new address for the next boot. | | `default` or `clear` | Remove the override and use the chipset's factory Bluetooth address. | A custom value must be a valid BLE random-static address in @@ -1207,9 +1208,63 @@ the device. Forget the old device entry and pair again. `random-every-boot` also clears the Companion's saved peer bonds during each startup, so pairing and PIN entry are expected again after every reboot. +`random-after-connect` keeps the same address across any number of reboots when +nobody successfully authenticated. As soon as an authenticated BLE connection +succeeds, the next boot rotates the address and clears stale bonds. The marker +is saved while connected, so a normal reboot, power switch, or battery pull +after that connection all produce the same next-boot rotation. + +The address setting does not enable or disable stealth. Use the separate +`bluetooth.stealth` flag below. `default` changes only the address policy. + +#### View or change Bluetooth stealth (BLE Companion) + +```text +get bluetooth.stealth +set bluetooth.stealth on +set bluetooth.stealth off +``` + +`get ble.stealth` and `set ble.stealth on|off` are short aliases. This flag +defaults to `off` and is independent of the Bluetooth address policy. Enabling +or disabling it keeps the configured custom/random/factory address policy +unchanged and requires a reboot. Repeating `on` keeps an existing stealth +pairing; repeating `off` does not alter address settings. + +For a custom address with stealth: + +```text +set bluetooth.mac C2:11:22:33:44:55 +set bluetooth.stealth on +reboot +``` + +Use `set bluetooth.mac random` instead of the first line for one saved random +address. Both combinations keep their address and bond across later boots. +Rotating policies still rotate: `random-every-boot` reopens pairing at every +boot, while `random-after-connect` reopens it on the first boot after an +authenticated connection. Stealth stays enabled; each new address begins +with a fresh pairing window so it cannot get hidden behind an unusable bond. + +With stealth on, the node is normally discoverable until the first authenticated pairing. +After that, nRF52 uses directed advertising to the saved peer. ESP32 uses a +minimal unnamed advertisement and a controller allowlist because its common +Arduino BLE API does not expose the directed-advertising peer field. Both +reject connection and scan requests from other peers. BLE cannot be completely +radio silent and still accept a connection, so a passive radio sniffer may +still observe packets. To deliberately clear the saved stealth peer, send +`set bluetooth.stealth off`, then `set bluetooth.stealth on`, then reboot over +USB or an existing authenticated connection. To leave stealth, set it `off` +and reboot. If the saved node-side bond is lost, recovery reopens pairing. +The former `set bluetooth.mac stealth` command is no longer accepted. + This changes only the running MeshCore Companion application. On nRF52, the OTAFIX bootloader still uses its own address, which is visible only while the board is in BLE DFU/recovery mode. USB and LoRa updates are unaffected. +Bluetooth update tools must follow that separate bootloader address after the +handoff; they must not assume that a custom application address remains the +DFU address. See the [hardware observations](hardware_validation_bluetooth_stealth_2026-09-07.md) +for the tested XIAO handoff and host-cache caveats. --- diff --git a/docs/companion_protocol.md b/docs/companion_protocol.md index 318d283b..7b7546ae 100644 --- a/docs/companion_protocol.md +++ b/docs/companion_protocol.md @@ -289,7 +289,8 @@ The equivalent framed CLI commands are: | FEM receive gain | `get radio.fem.rxgain`; `set radio.fem.rxgain on|off` | | WiFi power save | `get wifi.powersave`; `set wifi.powersave none|min|max` | | Bluetooth name | `get bluetooth.name`; `set bluetooth.name ` | -| Bluetooth address | `get bluetooth.mac`; `set bluetooth.mac ` | +| Bluetooth address | `get bluetooth.mac`; `set bluetooth.mac ` | +| Bluetooth stealth | `get bluetooth.stealth`; `set bluetooth.stealth on|off` | The framed form works over the normal binary USB, BLE, or TCP transport and does not need the USB terminal-start token. Unsupported settings return the @@ -328,11 +329,22 @@ custom name is limited to 31 valid UTF-8 bytes and takes effect after reboot. Bluetooth Companion builds also accept `bluetooth.mac` (`ble.mac` is an alias). A literal address must be a BLE random-static address; `random` generates and saves one, `random-every-boot` rotates it at each startup, and -`default` or `clear` restores the factory address. The change takes effect -after reboot. The client must forget and re-pair the old identity. Per-boot -random mode clears local peer bonds each startup and therefore requires a new -pairing after every reboot. This is an application setting; an nRF52 OTAFIX -bootloader continues to advertise its separate DFU identity. +`random-after-connect` retains it through unused boots but rotates it on the +first boot after an authenticated connection. `default` or `clear` restores +the factory address. The change takes effect after reboot. + +`bluetooth.stealth on|off` (`ble.stealth` is an alias) is a separate flag, +defaulting to off. It preserves the address policy and can be combined with +custom, saved random, rotating random, or factory addresses. With stealth on, +the node advertises normally until the first authenticated pairing, then +permits only that bonded peer to reconnect. Address changes clear the saved +peer and reopen pairing without disabling stealth. Rotating policies retain +their normal rotation triggers. Repeating `on` does not clear an existing bond. +Both flag changes require reboot. The old MAC value `stealth` is not accepted. + +BLE still transmits directed or allowlisted advertisements; stealth is not +radio silence. These are application settings; an nRF52 OTAFIX bootloader +continues to advertise its separate DFU identity. ### Bluetooth LoRa mOTA source diff --git a/docs/companion_radio_full.md b/docs/companion_radio_full.md index c306e85d..39318901 100644 --- a/docs/companion_radio_full.md +++ b/docs/companion_radio_full.md @@ -384,13 +384,24 @@ prefix, accept up to 31 valid UTF-8 bytes, and take effect after reboot. This does not change the node's mesh advertisement name. Every Bluetooth Companion also supports `get bluetooth.mac` and -`set bluetooth.mac `. A literal -address is a BLE random-static identity, `random` creates one persistent -identity, `random-every-boot` rotates it on startup, and `default` (or `clear`) -restores the chipset address. Reboot and re-pair after changing modes. The -per-boot mode intentionally clears local bonds and needs a new pairing after -every reboot. On nRF52 this affects the MeshCore application only, not the -OTAFIX bootloader's separate BLE DFU identity. +`set bluetooth.mac `. +A literal address is a BLE random-static identity, `random` creates one +persistent identity, `random-every-boot` rotates it on startup, and +`random-after-connect` rotates it on the first boot after an authenticated +connection while leaving unused boots unchanged. `default` (or `clear`) +restores the chipset address. None of these values changes the stealth flag. +Reboot and re-pair after changing modes or after a rotation. Address rotation +clears stale local bonds. On nRF52 this affects the MeshCore application only, +not the OTAFIX bootloader's separate BLE DFU identity. + +`get bluetooth.stealth` and `set bluetooth.stealth on|off` control an independent +flag, defaulting to off. Combine it with a custom address or `random` to retain +the address and bond across boots. With stealth on, normal discovery ends +after the first authenticated pairing and only the saved peer may reconnect. +Rotating MAC policies still rotate and reopen first pairing when they do; +stealth remains enabled. Repeating `on` keeps an existing bond. Toggle `off`, +then `on`, then reboot to reset first pairing. All flag changes need reboot. +The node still sends directed or allowlisted BLE packets; it is not radio silent. ESP32 ports 5000, 5001, 5002, and WebConfig have no independent login layer. Expose them only on a trusted LAN or temporary setup network. See diff --git a/docs/hardware_validation_bluetooth_stealth_2026-09-07.md b/docs/hardware_validation_bluetooth_stealth_2026-09-07.md new file mode 100644 index 00000000..6be82ccc --- /dev/null +++ b/docs/hardware_validation_bluetooth_stealth_2026-09-07.md @@ -0,0 +1,200 @@ +# XIAO Bluetooth stealth hardware validation - 2026-09-07 + +Historical command syntax: the initial run used stealth as a MAC mode. +Current firmware uses the independent `bluetooth.stealth on|off` flag instead +and does not migrate that development mode. See [current commands](cli_commands.md) +and the independent-flag follow-up below. Each observation applies only to +the exact artifact listed in its section. + +This is a hardware observation report, not an all-board or phone qualification. +The test host was the MercerWoodMesh Raspberry Pi Zero 2 W, accessed remotely +over Tailscale. Tests used its built-in Bluetooth adapter, not USB resets or +hub power switching. Local timestamps below use America/Los_Angeles. + +## Exact target and firmware + +- Board: Seeed XIAO nRF52840; application name `MeshCore-4610BBD2`. +- Factory/bootloader address: `E5:C3:A8:B0:60:66`. +- Fresh stealth test address: `DC:8D:5E:45:89:6F`. +- Bonded test central: Mercer Pi, public address `B8:27:EB:F9:6E:8E`. +- Environment: `Xiao_nrf52_companion_radio_ble`, supported build wrapper, + target radio preset, default profile, GCC 14.2.1. +- Firmware: `dev-stealth3-4b400ea5`, including the uncommitted Bluetooth + identity changes on top of `4b400ea5`. +- Application ZIP SHA-256: + `acdce0af2334349c6e0a5786db5525b00d19befef340411d2e99008ce4d316ae`. +- Linked RAM: 183,232 / 237,568 bytes; flash: 616,504 / 708,608 bytes. + +The application was installed with Nordic Legacy BLE DFU. The tool verified +the exact ZIP hash, bootloader advertisement and live DIS model +`XIAO nRF52840` before transmitting 616,584 application bytes. Target image +validation and target-initiated activation disconnect passed. The transfer +reported about 2,223 bytes/second (about 277 seconds for payload transmission). +Authenticated MeshCore device queries subsequently returned protocol 14, +board `Seeed Xiao-nrf52`, and the expected unique test-version prefix. + +## Observed results + +| Check | Result and evidence | +| --- | --- | +| First-pair discovery | `set bluetooth.mac stealth` saved a new random-static address; reboot returned that exact address with the normal name and Nordic UART advertisement. | +| First authenticated pairing | The Pi received a passkey request and completed pairing. BlueZ reported both Paired and Bonded. MITM-protected Nordic UART notifications and real command/reply exchanges worked at MTU 247. | +| Pairing transition keeps the session alive | The initial connection returned `stealth; bonded-peer-only advertising`, remained usable for five more seconds, and answered another command without disconnecting or pairing again. | +| Advertising after disconnect | A public-address passive scan captured `ADV_DIRECT_IND` from the exact target, with advertising data length zero. The capture contained no undirected advertisement or scan response from that address. | +| Bonded reconnect | Subsequent direct connections by saved BlueZ device identity succeeded without a new passkey, including live version, core-statistics and Bluetooth-mode replies. | +| Warm reboot persistence | Two commanded reboots retained the address and saved bond. Directed advertising was captured after reboot, followed by authenticated reconnect. Device uptime decreased from 61 seconds before the second reboot to 35 seconds at the next query; core error flags were zero. | +| Slow advertising interval | A successful bonded reconnect occurred about 61 seconds after reboot, beyond the 30-second fast-advertising interval. | +| Reopen pairing | Setting `stealth` again from an existing bonded connection generated a new address, and the next boot allowed a fresh first pairing. | +| Restore default | `set bluetooth.mac default` plus reboot restored `E5:C3:A8:B0:60:66` and normal discovery. Fresh PIN pairing, version/core-statistics queries and repeated `factory address (default)` replies passed. The bench target was left in this discoverable mode. | + +The newly completed pairing reaches Bluefruit's secured callback before its +bonded flag is necessarily ready. Recording the completed pairing in the +pair-complete callback as well, waiting for the deferred bond write, and +deferring identity-list reconfiguration until disconnect are covered by this +fresh-pair hardware run. Static source contracts also check those paths. + +The binary reboot command can reset the target before BlueZ receives its ATT +write acknowledgement. One initial harness run reported `Unlikely Error` +after successful pre-reboot commands. Later checks require an observed +disconnect, a live post-reboot query and decreased device uptime; they do not +treat the write exception or tool exit code alone as a successful reboot. + +## Discovery and DFU cautions found during testing + +An ordinary BlueZ discovery scan used a temporary random local address and +did not show the directed target. A passive scan using the Pi's public +identity did show it. Reconnection must use the saved peer/device identity; +absence from an ordinary scan is not proof that the node stopped working. +Conversely, BlueZ can retain a cached name after pairing, so a displayed name +is not proof that the name is still being advertised. The packet-type and +zero-length-payload capture is the relevant evidence here. + +The existing DFU handoff helper assumed the application and bootloader shared +one address. That assumption is false with a custom application address: +the authenticated handoff worked, but the helper timed out looking for DFU +at the application address. A fresh exact-address scan found the known +factory-address `XIAO_DFU` instead. An old factory-address host bond also +caused the first DFU service-discovery attempt to disconnect; clearing only +that old lab record allowed DFU. No bootloader code was changed for this test. + +An earlier application-address host pairing record was also removed before +its saved stealth state was known. A direct, known-address connection from +the same Pi identity allowed fresh PIN pairing and protected commands again. +This does not prove that an arbitrary replacement phone can rediscover or +recover a stealth node after forgetting its bond. + +## Remaining hardware gates + +- True cold boot with all XIAO power sources, including battery, disconnected. + The XIAO reported a battery voltage and did not enumerate as USB on the Pi; + a Pi-only reboot or power cycle would not prove this gate. +- Unused-boot retention with `random-after-connect`, using a reboot trigger + that does not itself authenticate over BLE. The policy has native tests; + the remote BLE reboot command cannot prove this hardware gate. +- Android and iOS bonded reconnect, including a phone changing its resolvable + private address, and direct-connection behavior in the actual MeshCore app. +- Rejection of a connection from a second, unbonded physical central. +- ESP32 Bluedroid and NimBLE hardware. Those use allowlisted minimal + advertising rather than nRF52 directed advertisements. +- Node-side missing/corrupt bond and failed settings/bond-write fault injection. + +## Repeatable regression procedure + +1. Record the exact board, application version, ZIP hash, local/remote BLE + identities and original Bluetooth setting. Keep a working recovery path. +2. Set the desired custom or random MAC, enable `bluetooth.stealth on`, reboot, + and capture normal discovery before pairing. +3. Pair once. Require a stored bond and successful protected MeshCore commands, + then keep the original session open and issue another command. +4. Disconnect. Capture the actual advertising type and payload with an + appropriate receiving identity; do not use cached scan names as evidence. +5. Reconnect by the saved peer without another PIN and exchange commands. +6. For custom and saved-random addresses, repeat `bluetooth.stealth on`, reboot + twice, and verify unchanged identity/bond, decreased uptime and live + commands. Include a reconnect after the fast-advertising period ends. +7. Separately remove all target power and repeat the persistence checks. +8. Test `bluetooth.stealth off`, then `on`, as a pairing reset, and `off` as + the exit from stealth. Verify live discovery, pairing, commands and an + unchanged MAC policy. Changing the address to `default` is a separate step. +9. With each rotating MAC policy, verify that its rotation trigger still + works, stealth stays enabled, and the new address permits fresh pairing. +10. Repeat relevant gates for a phone with address privacy and each BLE backend. + +Raw VM-side logs, the exact artifact and bounded test helper are in +`/home/mesh/mercer-stealth-validation.jUDW0v/`. Raw Bluetooth captures are +local diagnostics and should not be published without privacy review. + +## Mercer crash capture + +During this run the Pi used its existing `dwc_otg.speed=1` full-speed USB +configuration. Kernel and health logs were streamed to this VM. No new kernel +errors or Pi lockup were observed during these tests; that does not establish +the cause of the earlier lockup. + +The live test streams and all temporary scans were stopped at approximately +22:56 PDT. Journald remained active, the restore service remained enabled, +and the test XIAO was disconnected in default mode. Disk journals occupied +about 4.9 MiB at the final check. + +At 22:35 PDT, temporary persistent journaling was enabled with a 16 MiB +configured disk-use limit, 2 MiB journal files, one-day retention and a +30-second normal sync interval. Recent buffered messages can still be lost +in a sudden failure. The original `Storage=volatile` configuration is intact. + +`mercer-crash-capture-restore.service` is enabled for the next Pi boot. It +checks the armed boot ID, removes only the unchanged managed override, +switches journald back to RAM and leaves the old disk journals for collection. +Its same-boot no-op guard and unit syntax passed. The next-boot restoration +has not yet been exercised; no Pi crash or reboot was deliberately induced. + +## Independent-flag follow-up - dev-stflag + +The same XIAO and Pi were used later on 2026-09-07 to test the separate +`bluetooth.stealth on|off` flag, with no development-mode migration. This run +used `Xiao_nrf52_companion_radio_ble`, target radio preset, default profile, +and firmware `dev-stflag-4b400ea5` with the uncommitted flag changes. + +- Application ZIP SHA-256: + `48fc0ff2c716281771f8b525c62a0015c7605b07e7c513ab854c8b3ff3113f42`. +- Linked RAM: 183,232 / 237,568 bytes; flash: 617,192 / 708,608 bytes. +- Nordic Legacy BLE DFU verified the exact target, hash and model, transferred + 617,272 application bytes at a reported 3,522 bytes/second, passed target + validation, and observed the target activation disconnect. +- Protected live device queries returned `dev-stflag-4b400ea5`, protocol 14, + and `Seeed Xiao-nrf52`; every queried core error-flags value was zero. + +| Check | Observed result | +| --- | --- | +| Default and rejected input | Initial mode was factory address with stealth off. `set bluetooth.mac stealth` and `set bluetooth.stealth maybe` returned errors, leaving both settings unchanged. | +| Custom plus stealth | `D2:27:5A:40:06:99` advertised normally before first pairing. Fresh PIN pairing, stored bond, protected commands, and a five-second held session passed with stealth on. | +| Repeated on and warm reboot | Repeating `set bluetooth.stealth on` retained the paired state. After reboot, the same custom address accepted protected commands without another PIN. Uptime decreased from 84 to 67 seconds. | +| Actual advertising after reboot | A public-address passive capture showed `ADV_DIRECT_IND` for the custom address, data length zero, and no undirected advertisement or scan response from that address. The scan was explicitly disabled afterward. | +| Off preserves custom address | `set ble.stealth off` and reboot restored normal discovery at the same custom address. A live connection returned stealth off and the unchanged custom policy. | +| Saved random plus stealth | `F2:2E:E5:65:18:5E` passed first pairing and held commands. After reboot, it retained its address, saved-random policy and stealth bond; protected reconnect needed no PIN. Uptime decreased from 55 to 30 seconds. | +| Random-after-connect plus stealth | Selecting this policy kept stealth on and reopened pairing at `C7:FD:29:44:4F:3E`. Pairing produced both bonded-peer-only status and an armed next-boot rotation. Reboot changed the address to `F5:F3:89:B7:B5:26`, where normal discovery, fresh pairing and protected commands passed with stealth still on. | +| Random-every-boot plus stealth | The first boot used `F9:B2:03:DD:CC:43`, completed fresh pairing, and answered commands with stealth on. The next commanded reboot advertised `F8:C7:C0:96:1E:00`; fresh PIN pairing and protected commands passed again with the rotating policy and stealth on. | +| Restore the bench target | Setting the MAC to `default` kept stealth on until the separate `set bluetooth.stealth off`. After reboot, factory-address discovery, fresh PIN pairing and protected commands confirmed default MAC and stealth off. The obsolete factory-address host bond was replaced during this final pairing. | + +These checks used actual encrypted BLE connections at MTU 247, not scan +sightings alone. Two first-pair harness attempts stopped before connecting +because their unpaired BlueZ discovery object no longer existed. A fresh +bounded scan immediately followed by pairing was used for retries; this was +not a firmware GATT command failure. Reboot-write/disconnect races were +accepted only with an observed disconnect and subsequent live device checks. + +Local automated verification passed 39 native cases, 32 source/persistence/UI +contracts, and 11 real-browser cases. Supported-wrapper builds passed for +XIAO nRF52, XIAO C3, M5Stack Unit C6L and XIAO S3 WIO Full Companion, covering +nRF52, ESP32 NimBLE and ESP32 Bluedroid integration. The contracts and browser +suite are included in the unit-test workflow; a browser must be available for +the optional browser suite to execute instead of skip. + +Exact artifacts, build logs, command logs and the private packet capture are +in `/home/mesh/bluetooth-stealth-flag.ApLB8o/` on the VM. The remaining hardware +gates above still apply; these results do not qualify every board or phone. + +At 23:42 PDT the XIAO was disconnected in normal discoverable mode. The Pi +retained the same boot ID throughout, remained responsive, and had no new +kernel messages in the streamed log. Journald was active, the next-boot +volatile-log restoration service was still enabled, and disk journals used +about 5.9 MiB. No USB reset, Pi reboot, or target battery removal was used. diff --git a/docs/hardware_validation_checklist.md b/docs/hardware_validation_checklist.md index 60c403b9..3ff9599a 100644 --- a/docs/hardware_validation_checklist.md +++ b/docs/hardware_validation_checklist.md @@ -10,6 +10,17 @@ when its log identifies the physical device, firmware artifact, artifact hash, command result, and cold/warm boot outcome. Do not infer success from a tool's exit code when the tool has a documented false-success mode. +## Bluetooth stealth qualification - 2026-09-07 + +The [XIAO stealth report](hardware_validation_bluetooth_stealth_2026-09-07.md) +records exact artifacts for the initial implementation and independent-flag +follow-up. The flag run covers custom/saved-random pairing and bonded reboot +reconnect, idempotent `on`, `off` preserving the MAC, directed advertising, +and both rotating policies with stealth still enabled. It also gives the +repeatable hardware regression procedure. True battery-disconnected cold boot, +phone address-privacy behavior, a second unbonded central, and ESP32 hardware +remain separate uncompleted gates; do not infer them from the XIAO results. + ## Current marathon ledger (through 2026-09-04) | Hardware | Stable identity | Current state | Next blocking check | diff --git a/docs/terminal_chat_cli.md b/docs/terminal_chat_cli.md index 12a70e82..1bcc2aeb 100644 --- a/docs/terminal_chat_cli.md +++ b/docs/terminal_chat_cli.md @@ -87,15 +87,28 @@ takes effect after reboot. `get ble.name` and `set ble.name` are short aliases. ``` get bluetooth.mac -set bluetooth.mac {address|random|random-every-boot|default} +set bluetooth.mac {address|random|random-every-boot|random-after-connect|default} +get bluetooth.stealth +set bluetooth.stealth {on|off} ``` Shows or changes the Bluetooth identity on Companion builds with BLE. A literal address must be BLE random-static, such as `C2:11:22:33:44:55`. `random` generates and saves one address; `random-every-boot` generates a new -one on each startup (`random everyboot` is also accepted); `default` or `clear` -restores the factory address. Reboot, -forget the old phone entry, and pair again. Per-boot random mode requires -pairing after every reboot. `get ble.mac` and `set ble.mac` are short aliases. +one on each startup (`random everyboot` is also accepted). +`random-after-connect` keeps its address across unused power cycles, then +rotates on the next boot after an authenticated connection. `default` or +`clear` restores the factory address without changing the stealth flag. +Reboot, forget the old phone entry, and pair again after an address change. +`get ble.mac` and `set ble.mac` are short aliases. + +The independent `bluetooth.stealth` flag defaults off and preserves the chosen +address policy. With it on, the node is discoverable until its first +authenticated pairing, then accepts only that bonded peer. Custom and saved +random addresses keep the bond across boots; rotating modes reopen pairing +when the address rotates, leaving stealth enabled. It still transmits the +directed or allowlisted packets BLE requires for reconnection. Repeating `on` +keeps the bond. Send `off`, then `on`, then reboot to reopen pairing manually. +`ble.stealth` is the short alias. Flag changes require reboot. ``` set lat {latitude} diff --git a/examples/companion_radio/DataStore.cpp b/examples/companion_radio/DataStore.cpp index f82d8af6..c095025c 100644 --- a/examples/companion_radio/DataStore.cpp +++ b/examples/companion_radio/DataStore.cpp @@ -605,6 +605,17 @@ bool DataStore::loadPrefsInt(const char *filename, 168 + sizeof(loaded_prefs.bluetooth_name) + sizeof(loaded_prefs.bluetooth_mac_mode) + sizeof(loaded_prefs.bluetooth_mac), + 168 + sizeof(loaded_prefs.bluetooth_name) + + sizeof(loaded_prefs.bluetooth_mac_mode) + + sizeof(loaded_prefs.bluetooth_mac) + + sizeof(loaded_prefs.bluetooth_stealth_peer_type) + + sizeof(loaded_prefs.bluetooth_stealth_peer), + 168 + sizeof(loaded_prefs.bluetooth_name) + + sizeof(loaded_prefs.bluetooth_mac_mode) + + sizeof(loaded_prefs.bluetooth_mac) + + sizeof(loaded_prefs.bluetooth_stealth_peer_type) + + sizeof(loaded_prefs.bluetooth_stealth_peer) + + sizeof(loaded_prefs.bluetooth_stealth_mode), }; const uint32_t prefs_size = file.size(); bool known_size = false; @@ -713,6 +724,12 @@ bool DataStore::loadPrefsInt(const char *filename, sizeof(loaded_prefs.bluetooth_mac_mode)); // 200 readOptionalField(loaded_prefs.bluetooth_mac, sizeof(loaded_prefs.bluetooth_mac)); // 201 + readOptionalField(&loaded_prefs.bluetooth_stealth_peer_type, + sizeof(loaded_prefs.bluetooth_stealth_peer_type)); // 207 + readOptionalField(loaded_prefs.bluetooth_stealth_peer, + sizeof(loaded_prefs.bluetooth_stealth_peer)); // 208 + readOptionalField(&loaded_prefs.bluetooth_stealth_mode, + sizeof(loaded_prefs.bluetooth_stealth_mode)); // 214 // Any bytes left over form only part of a historically appended field. // Preserve the file and defaults rather than treating that tail as EOF. @@ -817,6 +834,18 @@ bool DataStore::savePrefs(const CompanionNodePrefs& _prefs, double node_lat, dou == sizeof(_prefs.bluetooth_mac_mode); success = success && file.write((uint8_t *)_prefs.bluetooth_mac, sizeof(_prefs.bluetooth_mac)) == sizeof(_prefs.bluetooth_mac); + success = success && file.write( + (uint8_t *)&_prefs.bluetooth_stealth_peer_type, + sizeof(_prefs.bluetooth_stealth_peer_type)) + == sizeof(_prefs.bluetooth_stealth_peer_type); + success = success && file.write( + (uint8_t *)_prefs.bluetooth_stealth_peer, + sizeof(_prefs.bluetooth_stealth_peer)) + == sizeof(_prefs.bluetooth_stealth_peer); + success = success && file.write( + (uint8_t *)&_prefs.bluetooth_stealth_mode, + sizeof(_prefs.bluetooth_stealth_mode)) + == sizeof(_prefs.bluetooth_stealth_mode); #if defined(NRF52_PLATFORM) success = file.commit(success); diff --git a/examples/companion_radio/MyMesh.cpp b/examples/companion_radio/MyMesh.cpp index 7e228791..f4f3fda2 100644 --- a/examples/companion_radio/MyMesh.cpp +++ b/examples/companion_radio/MyMesh.cpp @@ -1728,6 +1728,60 @@ void MyMesh::begin(bool has_display, bool radio_available) { _prefs.display_rotation_degrees = 0; } + bool bluetooth_mac_repaired = false; + if (!mesh::companion::isValidBluetoothStealthMode( + _prefs.bluetooth_stealth_mode)) { + _prefs.bluetooth_stealth_mode = mesh::companion::BLUETOOTH_STEALTH_OFF; + bluetooth_mac_repaired = true; + } + if (!mesh::companion::isValidBluetoothMacMode( + _prefs.bluetooth_mac_mode)) { + _prefs.bluetooth_mac_mode = + mesh::companion::BLUETOOTH_MAC_DEFAULT; + memset(_prefs.bluetooth_mac, 0, sizeof(_prefs.bluetooth_mac)); + clearCompanionBluetoothStealthPeer(_prefs); + bluetooth_mac_repaired = true; + } else if (mesh::companion::bluetoothMacModeUsesSavedAddress( + _prefs.bluetooth_mac_mode) + && !mesh::companion::isValidBluetoothMac( + _prefs.bluetooth_mac) + && !mesh::companion::bluetoothMacModeIsRandomAfterConnect( + _prefs.bluetooth_mac_mode)) { + _prefs.bluetooth_mac_mode = + mesh::companion::BLUETOOTH_MAC_DEFAULT; + memset(_prefs.bluetooth_mac, 0, sizeof(_prefs.bluetooth_mac)); + clearCompanionBluetoothStealthPeer(_prefs); + bluetooth_mac_repaired = true; + } + + mesh::companion::BluetoothPeerIdentity saved_stealth_peer; + saved_stealth_peer.type = _prefs.bluetooth_stealth_peer_type; + memcpy(saved_stealth_peer.address, _prefs.bluetooth_stealth_peer, + sizeof(saved_stealth_peer.address)); + bool stealth_peer_payload_empty = true; + for (size_t i = 0; i < sizeof(_prefs.bluetooth_stealth_peer); i++) { + stealth_peer_payload_empty = stealth_peer_payload_empty + && _prefs.bluetooth_stealth_peer[i] == 0; + } + if (_prefs.bluetooth_stealth_mode + == mesh::companion::BLUETOOTH_STEALTH_PAIRED + && !mesh::companion::isValidBluetoothPeerIdentity( + saved_stealth_peer)) { + _prefs.bluetooth_stealth_mode = mesh::companion::BLUETOOTH_STEALTH_PAIRING; + bluetooth_mac_repaired = true; + } + if (_prefs.bluetooth_stealth_mode + != mesh::companion::BLUETOOTH_STEALTH_PAIRED + && (_prefs.bluetooth_stealth_peer_type + != mesh::companion::BLUETOOTH_PEER_ADDRESS_NONE + || !stealth_peer_payload_empty)) { + _prefs.bluetooth_stealth_peer_type = + mesh::companion::BLUETOOTH_PEER_ADDRESS_NONE; + memset(_prefs.bluetooth_stealth_peer, 0, + sizeof(_prefs.bluetooth_stealth_peer)); + bluetooth_mac_repaired = true; + } + // sanitise bad pref values _prefs.rx_delay_base = constrain(_prefs.rx_delay_base, 0, 20.0f); _prefs.airtime_factor = constrain(_prefs.airtime_factor, 0, 9.0f); @@ -1769,7 +1823,7 @@ void MyMesh::begin(bool has_display, bool radio_available) { &_prefs.rx_ps_sleep_us); if (prefs_ready && (power_saving_default_migrated || bluetooth_name_repaired - || display_rotation_repaired)) { + || display_rotation_repaired || bluetooth_mac_repaired)) { _store->savePrefs(_prefs, sensors.node_lat, sensors.node_lon); } #if MESH_USB_LOGGING_AVAILABLE @@ -2427,6 +2481,30 @@ bool MyMesh::handleLocalControlCommand(const char* command, char* reply, } #if defined(BLE_PIN_CODE) + if (strcmp(command, "get bluetooth.stealth") == 0 + || strcmp(command, "get ble.stealth") == 0) { + formatBluetoothStealthStatus(reply, reply_size); + return true; + } + + const char* bluetooth_stealth_value = NULL; + if (strncmp(command, "set bluetooth.stealth", 21) == 0 + && (command[21] == 0 || command[21] == ' ' + || command[21] == '\t')) { + bluetooth_stealth_value = command + 21; + } else if (strncmp(command, "set ble.stealth", 15) == 0 + && (command[15] == 0 || command[15] == ' ' + || command[15] == '\t')) { + bluetooth_stealth_value = command + 15; + } + if (bluetooth_stealth_value != NULL) { + while (*bluetooth_stealth_value == ' ' || *bluetooth_stealth_value == '\t') { + bluetooth_stealth_value++; + } + applyAndSaveBluetoothStealth(bluetooth_stealth_value, reply, reply_size); + return true; + } + if (strcmp(command, "get bluetooth.mac") == 0 || strcmp(command, "get ble.mac") == 0) { formatBluetoothMacStatus(reply, reply_size); @@ -2449,7 +2527,7 @@ bool MyMesh::handleLocalControlCommand(const char* command, char* reply, } if (bluetooth_mac_value[0] == 0) { snprintf(reply, reply_size, - "Error: use set bluetooth.mac "); + "Error: use set bluetooth.mac "); } else { applyAndSaveBluetoothMac(bluetooth_mac_value, reply, reply_size); } @@ -2939,11 +3017,18 @@ void MyMesh::getNodeSnapshot(WebConfigServer::NodeSnapshot& s) { | WebConfigServer::CAP_RX_DELAY | WebConfigServer::CAP_POWER_SAVING; #ifdef BLE_PIN_CODE s.capabilities |= WebConfigServer::CAP_BLUETOOTH_NAME - | WebConfigServer::CAP_BLUETOOTH_MAC; + | WebConfigServer::CAP_BLUETOOTH_MAC + | WebConfigServer::CAP_BLUETOOTH_STEALTH; + s.bluetooth_stealth = mesh::companion::bluetoothStealthEnabled( + _prefs.bluetooth_stealth_mode); if (_prefs.bluetooth_mac_mode == mesh::companion::BLUETOOTH_MAC_RANDOM_EVERY_BOOT) { wcCopyValue(s.bluetooth_mac, sizeof(s.bluetooth_mac), "random-every-boot"); + } else if (mesh::companion::bluetoothMacModeIsRandomAfterConnect( + _prefs.bluetooth_mac_mode)) { + wcCopyValue(s.bluetooth_mac, sizeof(s.bluetooth_mac), + "random-after-connect"); } else if (mesh::companion::bluetoothMacModeUsesSavedAddress( _prefs.bluetooth_mac_mode) && mesh::companion::isValidBluetoothMac( @@ -3074,6 +3159,11 @@ void MyMesh::execCommand(char* cmd, char* reply) { return; } #if defined(BLE_PIN_CODE) + if (cmd && (strcmp(cmd, "get bluetooth.stealth") == 0 + || strcmp(cmd, "get ble.stealth") == 0)) { + formatBluetoothStealthStatus(reply, 160); + return; + } if (cmd && (strcmp(cmd, "get bluetooth.mac") == 0 || strcmp(cmd, "get ble.mac") == 0)) { formatBluetoothMacStatus(reply, 160); @@ -3119,6 +3209,11 @@ void MyMesh::execCommand(char* cmd, char* reply) { return; } #if defined(BLE_PIN_CODE) + if (strcmp(key, "bluetooth.stealth") == 0 + || strcmp(key, "ble.stealth") == 0) { + applyAndSaveBluetoothStealth(value, reply, 160); + return; + } if (strcmp(key, "bluetooth.mac") == 0) { applyAndSaveBluetoothMac(value, reply, 160); return; @@ -5792,6 +5887,114 @@ void MyMesh::formatBluetoothNameStatus(char* reply, size_t reply_size) const { } #if defined(BLE_PIN_CODE) +bool MyMesh::prepareBluetoothMacForBoot(bool& address_rotated) { + address_rotated = false; + if (_prefs.bluetooth_mac_mode + == mesh::companion::BLUETOOTH_MAC_RANDOM_EVERY_BOOT) { + // This policy deliberately invalidates the previous local BLE identity. + // Reopen first pairing before advertising rather than hiding behind a + // bond created for that old address. Address generation remains once per + // boot in main.cpp, including initialization retries. + if (!resetBluetoothStealthPairing()) return false; + address_rotated = true; + return true; + } + const bool rotate_after_connection = + mesh::companion::bluetoothMacShouldRotateAtBoot( + _prefs.bluetooth_mac_mode, _prefs.bluetooth_mac); + if (!rotate_after_connection) return true; + + uint8_t address[mesh::companion::BLUETOOTH_MAC_BYTES]; + getRNG()->random(address, sizeof(address)); + mesh::companion::makeRandomStaticBluetoothMacDifferentFrom( + address, _prefs.bluetooth_mac); + address_rotated = saveBluetoothMac( + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT, address); + return address_rotated; +} + +bool MyMesh::armBluetoothMacRotationAfterConnection() { + if (_prefs.bluetooth_mac_mode + == mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED) { + return true; + } + if (_prefs.bluetooth_mac_mode + != mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT) { + return true; + } + + _prefs.bluetooth_mac_mode = + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED; + if (savePrefs()) return true; + + _prefs.bluetooth_mac_mode = + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT; + return false; +} + +bool MyMesh::saveBluetoothStealthPeer( + const mesh::companion::BluetoothPeerIdentity& peer) { + if (!mesh::companion::isValidBluetoothPeerIdentity(peer)) return false; + if (_prefs.bluetooth_stealth_mode + == mesh::companion::BLUETOOTH_STEALTH_PAIRED + && _prefs.bluetooth_stealth_peer_type == peer.type + && memcmp(_prefs.bluetooth_stealth_peer, peer.address, + sizeof(_prefs.bluetooth_stealth_peer)) == 0) { + return true; + } + if (_prefs.bluetooth_stealth_mode + != mesh::companion::BLUETOOTH_STEALTH_PAIRING) { + return false; + } + + const uint8_t previous_mode = _prefs.bluetooth_mac_mode; + const uint8_t previous_type = _prefs.bluetooth_stealth_peer_type; + uint8_t previous_peer[mesh::companion::BLUETOOTH_MAC_BYTES]; + memcpy(previous_peer, _prefs.bluetooth_stealth_peer, + sizeof(previous_peer)); + + _prefs.bluetooth_stealth_mode = mesh::companion::BLUETOOTH_STEALTH_PAIRED; + // One durable write records both consequences of a successful pairing. + // Stealth must not prevent random-after-connect from arming for next boot. + if (mesh::companion::bluetoothMacModeIsRandomAfterConnect( + _prefs.bluetooth_mac_mode)) { + _prefs.bluetooth_mac_mode = + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED; + } + _prefs.bluetooth_stealth_peer_type = peer.type; + memcpy(_prefs.bluetooth_stealth_peer, peer.address, + sizeof(_prefs.bluetooth_stealth_peer)); + if (savePrefs()) return true; + + _prefs.bluetooth_mac_mode = previous_mode; + _prefs.bluetooth_stealth_mode = mesh::companion::BLUETOOTH_STEALTH_PAIRING; + _prefs.bluetooth_stealth_peer_type = previous_type; + memcpy(_prefs.bluetooth_stealth_peer, previous_peer, + sizeof(_prefs.bluetooth_stealth_peer)); + return false; +} + +bool MyMesh::resetBluetoothStealthPairing() { + if (_prefs.bluetooth_stealth_mode != + mesh::companion::BLUETOOTH_STEALTH_PAIRED) { + return true; + } + + const uint8_t previous_type = _prefs.bluetooth_stealth_peer_type; + uint8_t previous_peer[mesh::companion::BLUETOOTH_MAC_BYTES]; + memcpy(previous_peer, _prefs.bluetooth_stealth_peer, + sizeof(previous_peer)); + + clearCompanionBluetoothStealthPeer(_prefs); + if (savePrefs()) return true; + + _prefs.bluetooth_stealth_mode = mesh::companion::BLUETOOTH_STEALTH_PAIRED; + _prefs.bluetooth_stealth_peer_type = previous_type; + memcpy(_prefs.bluetooth_stealth_peer, previous_peer, + sizeof(_prefs.bluetooth_stealth_peer)); + return false; +} + bool MyMesh::saveBluetoothMac(uint8_t mode, const uint8_t* address) { if (!mesh::companion::isValidBluetoothMacMode(mode)) return false; if (mesh::companion::bluetoothMacModeUsesSavedAddress(mode) @@ -5799,19 +6002,36 @@ bool MyMesh::saveBluetoothMac(uint8_t mode, const uint8_t* address) { return false; } + if (_prefs.bluetooth_mac_mode == mode + && (!mesh::companion::bluetoothMacModeUsesSavedAddress(mode) + || memcmp(_prefs.bluetooth_mac, address, + sizeof(_prefs.bluetooth_mac)) == 0)) { + return true; + } + const uint8_t previous_mode = _prefs.bluetooth_mac_mode; + const uint8_t previous_stealth_mode = _prefs.bluetooth_stealth_mode; uint8_t previous_address[mesh::companion::BLUETOOTH_MAC_BYTES]; + const uint8_t previous_peer_type = _prefs.bluetooth_stealth_peer_type; + uint8_t previous_peer[mesh::companion::BLUETOOTH_MAC_BYTES]; memcpy(previous_address, _prefs.bluetooth_mac, sizeof(previous_address)); + memcpy(previous_peer, _prefs.bluetooth_stealth_peer, + sizeof(previous_peer)); _prefs.bluetooth_mac_mode = mode; memset(_prefs.bluetooth_mac, 0, sizeof(_prefs.bluetooth_mac)); if (mesh::companion::bluetoothMacModeUsesSavedAddress(mode)) { memcpy(_prefs.bluetooth_mac, address, sizeof(_prefs.bluetooth_mac)); } + clearCompanionBluetoothStealthPeer(_prefs); if (savePrefs()) return true; _prefs.bluetooth_mac_mode = previous_mode; + _prefs.bluetooth_stealth_mode = previous_stealth_mode; memcpy(_prefs.bluetooth_mac, previous_address, sizeof(_prefs.bluetooth_mac)); + _prefs.bluetooth_stealth_peer_type = previous_peer_type; + memcpy(_prefs.bluetooth_stealth_peer, previous_peer, + sizeof(_prefs.bluetooth_stealth_peer)); return false; } @@ -5820,7 +6040,7 @@ bool MyMesh::applyAndSaveBluetoothMac(const char* value, char* reply, if (reply == NULL || reply_size == 0) return false; if (value == NULL) { snprintf(reply, reply_size, - "Error: use set bluetooth.mac "); + "Error: use set bluetooth.mac "); return false; } @@ -5840,6 +6060,14 @@ bool MyMesh::applyAndSaveBluetoothMac(const char* value, char* reply, || strcmp(value, "random every boot") == 0 || strcmp(value, "everyboot") == 0) { mode = mesh::companion::BLUETOOTH_MAC_RANDOM_EVERY_BOOT; + } else if (strcmp(value, "random-after-connect") == 0 + || strcmp(value, "random-after-connection") == 0 + || strcmp(value, "random after connect") == 0 + || strcmp(value, "random after connection") == 0 + || strcmp(value, "random-on-reboot-after-connect") == 0) { + mode = mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT; + getRNG()->random(address, sizeof(address)); + mesh::companion::makeRandomStaticBluetoothMac(address); } else { const char* custom_value = value; if (strncmp(custom_value, "custom", 6) == 0 @@ -5849,7 +6077,7 @@ bool MyMesh::applyAndSaveBluetoothMac(const char* value, char* reply, } if (!mesh::companion::parseBluetoothMac(custom_value, address)) { snprintf(reply, reply_size, - "Error: use a random-static address (first byte C0-FF), random, random-every-boot, or default"); + "Error: use a random-static address (first byte C0-FF), random, random-every-boot, random-after-connect, or default"); return false; } mode = mesh::companion::BLUETOOTH_MAC_CUSTOM; @@ -5867,6 +6095,12 @@ bool MyMesh::applyAndSaveBluetoothMac(const char* value, char* reply, } else if (mode == mesh::companion::BLUETOOTH_MAC_RANDOM_EVERY_BOOT) { snprintf(reply, reply_size, "OK - Bluetooth address will randomize every boot; reboot and pair each time"); + } else if (mesh::companion::bluetoothMacModeIsRandomAfterConnect(mode)) { + mesh::companion::formatBluetoothMac(address, formatted, + sizeof(formatted)); + snprintf(reply, reply_size, + "OK - Bluetooth address saved as %s; it will rotate on the first boot after a connection", + formatted); } else { mesh::companion::formatBluetoothMac(address, formatted, sizeof(formatted)); @@ -5892,6 +6126,15 @@ void MyMesh::formatBluetoothMacStatus(char* reply, size_t reply_size) const { _prefs.bluetooth_mac)) { snprintf(reply, reply_size, "> factory address (invalid saved address ignored)"); + } else if (mesh::companion::bluetoothMacModeIsRandomAfterConnect(mode)) { + char formatted[mesh::companion::BLUETOOTH_MAC_TEXT_SIZE]; + mesh::companion::formatBluetoothMac( + _prefs.bluetooth_mac, formatted, sizeof(formatted)); + snprintf( + reply, reply_size, "> %s (random-after-connect; %s)", formatted, + mode == mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED + ? "rotation armed for next boot" + : "retained until a successful connection"); } else { char formatted[mesh::companion::BLUETOOTH_MAC_TEXT_SIZE]; mesh::companion::formatBluetoothMac( @@ -5901,6 +6144,47 @@ void MyMesh::formatBluetoothMacStatus(char* reply, size_t reply_size) const { ? "custom" : "saved random"); } } + +bool MyMesh::applyAndSaveBluetoothStealth(const char* value, char* reply, + size_t reply_size) { + if (reply == NULL || reply_size == 0) return false; + if (value == NULL + || (strcmp(value, "on") != 0 && strcmp(value, "off") != 0)) { + snprintf(reply, reply_size, + "Error: use set bluetooth.stealth on|off"); + return false; + } + + const uint8_t previous_mode = _prefs.bluetooth_stealth_mode; + const uint8_t previous_type = _prefs.bluetooth_stealth_peer_type; + uint8_t previous_peer[mesh::companion::BLUETOOTH_MAC_BYTES]; + memcpy(previous_peer, _prefs.bluetooth_stealth_peer, sizeof(previous_peer)); + if (setCompanionBluetoothStealth(_prefs, strcmp(value, "on") == 0) + && !savePrefs()) { + _prefs.bluetooth_stealth_mode = previous_mode; + _prefs.bluetooth_stealth_peer_type = previous_type; + memcpy(_prefs.bluetooth_stealth_peer, previous_peer, sizeof(previous_peer)); + snprintf(reply, reply_size, "Error: Bluetooth stealth save failed"); + return false; + } + + snprintf(reply, reply_size, + "OK - Bluetooth stealth %s saved; MAC policy unchanged; reboot to apply", + value); + return true; +} + +void MyMesh::formatBluetoothStealthStatus(char* reply, size_t reply_size) const { + if (reply == NULL || reply_size == 0) return; + if (!mesh::companion::bluetoothStealthEnabled(_prefs.bluetooth_stealth_mode)) { + snprintf(reply, reply_size, "> off"); + } else { + snprintf(reply, reply_size, "> on (%s)", + _prefs.bluetooth_stealth_mode == mesh::companion::BLUETOOTH_STEALTH_PAIRED + ? "bonded-peer-only advertising" + : "discoverable until first authenticated pairing"); + } +} #endif #if defined(MESH_PRIMARY_ESPNOW) && MESH_PRIMARY_ESPNOW @@ -7346,7 +7630,9 @@ void MyMesh::handleTerminalCommand(char* command) { #if defined(BLE_PIN_CODE) terminalOutput().print(" get bluetooth.mac\r\n"); terminalOutput().print( - " set bluetooth.mac \r\n"); + " set bluetooth.mac \r\n"); + terminalOutput().print(" get bluetooth.stealth\r\n"); + terminalOutput().print(" set bluetooth.stealth on|off\r\n"); #endif terminalOutput().print(" set pin <0-999999>\r\n"); terminalOutput().print(" powersaving [on|off]\r\n"); diff --git a/examples/companion_radio/MyMesh.h b/examples/companion_radio/MyMesh.h index 6013e9e9..51ba9c60 100644 --- a/examples/companion_radio/MyMesh.h +++ b/examples/companion_radio/MyMesh.h @@ -140,6 +140,13 @@ public: const char *getNodeName(); CompanionNodePrefs *getNodePrefs(); uint32_t getBLEPin(); +#if defined(BLE_PIN_CODE) + bool prepareBluetoothMacForBoot(bool& address_rotated); + bool armBluetoothMacRotationAfterConnection(); + bool saveBluetoothStealthPeer( + const mesh::companion::BluetoothPeerIdentity& peer); + bool resetBluetoothStealthPairing(); +#endif int getOfflineQueueCapacity() const; void noteInternetClockSet() { #ifdef COMPANION_MESH_CLOCK_SYNC @@ -354,6 +361,9 @@ private: bool applyAndSaveBluetoothMac(const char* value, char* reply, size_t reply_size); void formatBluetoothMacStatus(char* reply, size_t reply_size) const; + bool applyAndSaveBluetoothStealth(const char* value, char* reply, + size_t reply_size); + void formatBluetoothStealthStatus(char* reply, size_t reply_size) const; #endif #if defined(MESH_PRIMARY_ESPNOW) && MESH_PRIMARY_ESPNOW bool applyAndSaveEspNowChannel(const char* value, char* reply, diff --git a/examples/companion_radio/NodePrefs.h b/examples/companion_radio/NodePrefs.h index 74e27ec5..f929b428 100644 --- a/examples/companion_radio/NodePrefs.h +++ b/examples/companion_radio/NodePrefs.h @@ -77,6 +77,10 @@ public: uint16_t cad_max_duration_ms = 0; uint8_t bluetooth_mac_mode = mesh::companion::BLUETOOTH_MAC_DEFAULT; uint8_t bluetooth_mac[mesh::companion::BLUETOOTH_MAC_BYTES] = {}; + uint8_t bluetooth_stealth_peer_type = + mesh::companion::BLUETOOTH_PEER_ADDRESS_NONE; + uint8_t bluetooth_stealth_peer[mesh::companion::BLUETOOTH_MAC_BYTES] = {}; + uint8_t bluetooth_stealth_mode = mesh::companion::BLUETOOTH_STEALTH_OFF; private: class RadioPrefs : public CommonRadioPrefs { @@ -210,3 +214,27 @@ inline bool migrateCompanionPowerSavingDefault(CompanionNodePrefs& prefs) { prefs.powersaving_policy_version = COMPANION_POWERSAVING_POLICY_VERSION; return true; } + +inline void clearCompanionBluetoothStealthPeer(CompanionNodePrefs& prefs) { + if (mesh::companion::bluetoothStealthEnabled(prefs.bluetooth_stealth_mode)) { + prefs.bluetooth_stealth_mode = mesh::companion::BLUETOOTH_STEALTH_PAIRING; + } + prefs.bluetooth_stealth_peer_type = + mesh::companion::BLUETOOTH_PEER_ADDRESS_NONE; + memset(prefs.bluetooth_stealth_peer, 0, sizeof(prefs.bluetooth_stealth_peer)); +} + +// An on/off flag must not change the address policy or erase a valid bond +// when the same value is submitted repeatedly. +inline bool setCompanionBluetoothStealth(CompanionNodePrefs& prefs, + bool enabled) { + if (mesh::companion::bluetoothStealthEnabled(prefs.bluetooth_stealth_mode) + == enabled) { + return false; + } + prefs.bluetooth_stealth_mode = enabled + ? mesh::companion::BLUETOOTH_STEALTH_PAIRING + : mesh::companion::BLUETOOTH_STEALTH_OFF; + clearCompanionBluetoothStealthPeer(prefs); + return true; +} diff --git a/examples/companion_radio/main.cpp b/examples/companion_radio/main.cpp index 60709dc9..d305f9c3 100644 --- a/examples/companion_radio/main.cpp +++ b/examples/companion_radio/main.cpp @@ -1922,10 +1922,52 @@ void halt() { static uint8_t companion_bluetooth_session_address[ mesh::companion::BLUETOOTH_MAC_BYTES] = {}; static bool companion_bluetooth_session_address_ready = false; + static bool companion_bluetooth_identity_prepared = false; + static bool companion_bluetooth_clear_bonds_this_boot = false; + static uint8_t companion_bluetooth_session_mode = + mesh::companion::BLUETOOTH_MAC_DEFAULT; + static uint8_t companion_bluetooth_session_stealth_mode = + mesh::companion::BLUETOOTH_STEALTH_OFF; + static uint8_t companion_bluetooth_saved_session_address[ + mesh::companion::BLUETOOTH_MAC_BYTES] = {}; + static bool companion_bluetooth_rotation_arm_pending = false; + static bool companion_bluetooth_stealth_transition_pending = false; + static mesh::companion::BluetoothPeerIdentity + companion_bluetooth_stealth_transition_peer; + static bool companion_bluetooth_stealth_recovery_pending = false; + static uint32_t companion_bluetooth_identity_retry_at = 0; + + static bool prepareCompanionBluetoothIdentity( + CompanionNodePrefs* prefs) { + if (companion_bluetooth_identity_prepared) return true; + if (prefs == nullptr) return false; + + bool address_rotated = false; + if (!the_mesh.prepareBluetoothMacForBoot(address_rotated)) { + mesh::usbLoggingPort().println( + "Companion: Bluetooth address preparation save failed"); + return false; + } + + companion_bluetooth_identity_prepared = true; + companion_bluetooth_session_mode = prefs->bluetooth_mac_mode; + companion_bluetooth_session_stealth_mode = prefs->bluetooth_stealth_mode; + companion_bluetooth_clear_bonds_this_boot = address_rotated + || companion_bluetooth_session_stealth_mode + == mesh::companion::BLUETOOTH_STEALTH_PAIRING; + memcpy(companion_bluetooth_saved_session_address, + prefs->bluetooth_mac, + sizeof(companion_bluetooth_saved_session_address)); + if (address_rotated) { + mesh::usbLoggingPort().println( + "Companion: Bluetooth address changed for this boot"); + } + return true; + } static const uint8_t* companionBluetoothAddress( const CompanionNodePrefs* prefs, bool& clear_bonds) { - clear_bonds = false; + clear_bonds = companion_bluetooth_clear_bonds_this_boot; if (prefs == nullptr || !mesh::companion::isValidBluetoothMacMode( prefs->bluetooth_mac_mode)) { @@ -1970,6 +2012,13 @@ void halt() { companion_bluetooth_start_at = 0; mesh::usbLoggingPort().println("Companion: starting Bluetooth"); + CompanionNodePrefs* prefs = the_mesh.getNodePrefs(); + if (!prepareCompanionBluetoothIdentity(prefs)) { + mesh::usbLoggingPort().println( + "Companion: Bluetooth identity preparation failed; retrying"); + scheduleCompanionBluetoothRetry(); + return; + } if (!interface_manager.addInterface(InterfaceType::Bluetooth, &bluetooth_interface)) { mesh::usbLoggingPort().println( @@ -1977,18 +2026,33 @@ void halt() { scheduleCompanionBluetoothRetry(); return; } - CompanionNodePrefs* prefs = the_mesh.getNodePrefs(); const bool custom_bluetooth_name = mesh::companion::hasCustomBluetoothName(prefs->bluetooth_name); bool clear_bonds = false; const uint8_t* bluetooth_address = companionBluetoothAddress(prefs, clear_bonds); + const bool stealth_pair_once = companion_bluetooth_session_stealth_mode + == mesh::companion::BLUETOOTH_STEALTH_PAIRING; + mesh::companion::BluetoothPeerIdentity bonded_only_peer; + const mesh::companion::BluetoothPeerIdentity* bonded_only_peer_ptr = + nullptr; + if (companion_bluetooth_session_stealth_mode + == mesh::companion::BLUETOOTH_STEALTH_PAIRED) { + bonded_only_peer.type = prefs->bluetooth_stealth_peer_type; + memcpy(bonded_only_peer.address, prefs->bluetooth_stealth_peer, + sizeof(bonded_only_peer.address)); + if (mesh::companion::isValidBluetoothPeerIdentity( + bonded_only_peer)) { + bonded_only_peer_ptr = &bonded_only_peer; + } + } if (!bluetooth_interface.begin(custom_bluetooth_name ? "" : BLE_NAME_PREFIX, custom_bluetooth_name ? prefs->bluetooth_name : prefs->node_name, the_mesh.getBLEPin(), bluetooth_address, - clear_bonds)) { + clear_bonds, stealth_pair_once, + bonded_only_peer_ptr)) { interface_manager.removeInterface(&bluetooth_interface); mesh::usbLoggingPort().println( "Companion: Bluetooth initialization failed; retrying in 5 seconds"); @@ -2009,6 +2073,128 @@ void halt() { || (int32_t)(millis() - companion_bluetooth_start_at) < 0) return; startCompanionBluetooth(); } + + static void serviceCompanionBluetoothIdentity() { + if (!companion_bluetooth_initialized) return; + + if (bluetooth_interface.takeBondedOnlyRecovery()) { + companion_bluetooth_stealth_recovery_pending = true; + companion_bluetooth_identity_retry_at = 0; + } + const uint32_t now = millis(); + if (companion_bluetooth_identity_retry_at != 0 + && (int32_t)(now - companion_bluetooth_identity_retry_at) < 0) { + return; + } + + if (companion_bluetooth_stealth_recovery_pending) { + if (the_mesh.resetBluetoothStealthPairing()) { + mesh::usbLoggingPort().println( + "Companion: saved stealth bond unavailable; reopening pairing"); + board.reboot(); + } else { + companion_bluetooth_identity_retry_at = + now + COMPANION_BLUETOOTH_RETRY_MS; + if (companion_bluetooth_identity_retry_at == 0) { + companion_bluetooth_identity_retry_at = 1; + } + mesh::usbLoggingPort().println( + "Companion: stealth recovery save failed; retrying"); + } + return; + } + + const CompanionNodePrefs* prefs = the_mesh.getNodePrefs(); + bool successful_connection = false; + if (companion_bluetooth_session_stealth_mode + == mesh::companion::BLUETOOTH_STEALTH_PAIRING) { + if (!companion_bluetooth_stealth_transition_pending) { + mesh::companion::BluetoothPeerIdentity peer; + if (bluetooth_interface.takeSuccessfulConnection(&peer)) { + successful_connection = true; + companion_bluetooth_stealth_transition_peer = peer; + companion_bluetooth_stealth_transition_pending = true; + } + } + if (companion_bluetooth_stealth_transition_pending) { + if (prefs == nullptr + || prefs->bluetooth_stealth_mode + != mesh::companion::BLUETOOTH_STEALTH_PAIRING + || !mesh::companion::bluetoothMacPoliciesMatch( + prefs->bluetooth_mac_mode, companion_bluetooth_session_mode) + || memcmp(prefs->bluetooth_mac, + companion_bluetooth_saved_session_address, + sizeof(companion_bluetooth_saved_session_address)) != 0) { + // A command changed identity while this session was running. Keep + // it usable until reboot applies the requested settings. + bluetooth_interface.cancelStealthPairingTransition(); + companion_bluetooth_stealth_transition_pending = false; + companion_bluetooth_session_stealth_mode = + mesh::companion::BLUETOOTH_STEALTH_OFF; + companion_bluetooth_identity_retry_at = 0; + } else if (the_mesh.saveBluetoothStealthPeer( + companion_bluetooth_stealth_transition_peer)) { + companion_bluetooth_stealth_transition_pending = false; + companion_bluetooth_session_stealth_mode = + mesh::companion::BLUETOOTH_STEALTH_PAIRED; + companion_bluetooth_identity_retry_at = 0; + if (bluetooth_interface.enableBondedOnlyAdvertising( + companion_bluetooth_stealth_transition_peer)) { + mesh::usbLoggingPort().println( + "Companion: stealth Bluetooth now accepts its bonded peer only"); + } else { + companion_bluetooth_stealth_recovery_pending = true; + } + } else { + companion_bluetooth_identity_retry_at = + now + COMPANION_BLUETOOTH_RETRY_MS; + if (companion_bluetooth_identity_retry_at == 0) { + companion_bluetooth_identity_retry_at = 1; + } + mesh::usbLoggingPort().println( + "Companion: stealth peer save failed; retrying"); + } + } + } else { + successful_connection = bluetooth_interface.takeSuccessfulConnection(); + } + + // Stealth and MAC rotation consume the same authenticated event; neither + // policy may swallow it before the other has persisted its state. + if (!mesh::companion::bluetoothMacModeIsRandomAfterConnect( + companion_bluetooth_session_mode)) { + return; + } + if (successful_connection) { + companion_bluetooth_rotation_arm_pending = true; + } + if (!companion_bluetooth_rotation_arm_pending) return; + + if (prefs == nullptr + || !mesh::companion::bluetoothMacModeIsRandomAfterConnect( + prefs->bluetooth_mac_mode) + || memcmp(prefs->bluetooth_mac, + companion_bluetooth_saved_session_address, + sizeof(companion_bluetooth_saved_session_address)) != 0) { + companion_bluetooth_rotation_arm_pending = false; + return; + } + + if (the_mesh.armBluetoothMacRotationAfterConnection()) { + companion_bluetooth_rotation_arm_pending = false; + companion_bluetooth_identity_retry_at = 0; + mesh::usbLoggingPort().println( + "Companion: Bluetooth rotation armed for next boot"); + } else { + companion_bluetooth_identity_retry_at = + now + COMPANION_BLUETOOTH_RETRY_MS; + if (companion_bluetooth_identity_retry_at == 0) { + companion_bluetooth_identity_retry_at = 1; + } + mesh::usbLoggingPort().println( + "Companion: Bluetooth rotation marker save failed; retrying"); + } + } #endif #if defined(ESP32_PLATFORM) && COMPANION_FEATURE_MEMORY_DIAGNOSTICS @@ -2692,5 +2878,6 @@ void loop() { #else serviceDeferredCompanionBluetooth(); #endif + serviceCompanionBluetoothIdentity(); #endif } diff --git a/src/helpers/BluetoothMac.h b/src/helpers/BluetoothMac.h index b3f75c91..05ee5deb 100644 --- a/src/helpers/BluetoothMac.h +++ b/src/helpers/BluetoothMac.h @@ -15,15 +15,46 @@ enum BluetoothMacMode : uint8_t { BLUETOOTH_MAC_CUSTOM = 1, BLUETOOTH_MAC_RANDOM_SAVED = 2, BLUETOOTH_MAC_RANDOM_EVERY_BOOT = 3, + BLUETOOTH_MAC_RANDOM_AFTER_CONNECT = 4, + // Internal persisted state: the current identity completed an authenticated + // connection and must rotate before it advertises next boot. + BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED = 5, }; inline bool isValidBluetoothMacMode(uint8_t mode) { - return mode <= BLUETOOTH_MAC_RANDOM_EVERY_BOOT; + return mode <= BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED; +} + +inline bool bluetoothMacModeIsRandomAfterConnect(uint8_t mode) { + return mode == BLUETOOTH_MAC_RANDOM_AFTER_CONNECT + || mode == BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED; +} + +enum BluetoothStealthMode : uint8_t { + BLUETOOTH_STEALTH_OFF = 0, + BLUETOOTH_STEALTH_PAIRING = 1, + BLUETOOTH_STEALTH_PAIRED = 2, +}; + +inline bool isValidBluetoothStealthMode(uint8_t mode) { + return mode <= BLUETOOTH_STEALTH_PAIRED; +} + +inline bool bluetoothStealthEnabled(uint8_t mode) { + return mode == BLUETOOTH_STEALTH_PAIRING + || mode == BLUETOOTH_STEALTH_PAIRED; +} + +inline bool bluetoothMacPoliciesMatch(uint8_t first, uint8_t second) { + return first == second + || (bluetoothMacModeIsRandomAfterConnect(first) + && bluetoothMacModeIsRandomAfterConnect(second)); } inline bool bluetoothMacModeUsesSavedAddress(uint8_t mode) { return mode == BLUETOOTH_MAC_CUSTOM - || mode == BLUETOOTH_MAC_RANDOM_SAVED; + || mode == BLUETOOTH_MAC_RANDOM_SAVED + || bluetoothMacModeIsRandomAfterConnect(mode); } inline bool hasCustomBluetoothMac( @@ -51,6 +82,40 @@ inline bool isValidBluetoothMac( return !payload_all_zero && !payload_all_one; } +inline bool bluetoothMacShouldRotateAtBoot( + uint8_t mode, const uint8_t address[BLUETOOTH_MAC_BYTES]) { + return bluetoothMacModeIsRandomAfterConnect(mode) + && (mode == BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED + || !isValidBluetoothMac(address)); +} + +enum BluetoothPeerAddressType : uint8_t { + BLUETOOTH_PEER_ADDRESS_NONE = 0, + BLUETOOTH_PEER_ADDRESS_PUBLIC = 1, + BLUETOOTH_PEER_ADDRESS_RANDOM = 2, +}; + +struct BluetoothPeerIdentity { + uint8_t type = BLUETOOTH_PEER_ADDRESS_NONE; + uint8_t address[BLUETOOTH_MAC_BYTES] = {}; +}; + +inline bool isValidBluetoothPeerIdentity( + const BluetoothPeerIdentity& peer) { + if (peer.type != BLUETOOTH_PEER_ADDRESS_PUBLIC + && peer.type != BLUETOOTH_PEER_ADDRESS_RANDOM) { + return false; + } + + bool all_zero = true; + bool all_one = true; + for (size_t i = 0; i < BLUETOOTH_MAC_BYTES; i++) { + all_zero = all_zero && peer.address[i] == 0; + all_one = all_one && peer.address[i] == 0xFFu; + } + return !all_zero && !all_one; +} + // Convert six random bytes into a valid BLE random-static identity. This is // deterministic for a given input so both saved-random and per-boot modes can // use the platform's existing entropy source without platform-specific rules. @@ -61,6 +126,24 @@ inline void makeRandomStaticBluetoothMac( if (!isValidBluetoothMac(address)) address[5] ^= 0x01u; } +inline void makeRandomStaticBluetoothMacDifferentFrom( + uint8_t address[BLUETOOTH_MAC_BYTES], + const uint8_t previous[BLUETOOTH_MAC_BYTES]) { + makeRandomStaticBluetoothMac(address); + if (address == NULL || previous == NULL + || memcmp(address, previous, BLUETOOTH_MAC_BYTES) != 0) { + return; + } + + address[5] ^= 0x01u; + if (!isValidBluetoothMac(address)) { + // The old payload was one bit away from all-zero or all-one. Restore that + // bit and flip a second payload bit so the result is valid and different. + address[5] ^= 0x01u; + address[4] ^= 0x01u; + } +} + inline int bluetoothMacHexDigit(char value) { if (value >= '0' && value <= '9') return value - '0'; if (value >= 'a' && value <= 'f') return value - 'a' + 10; diff --git a/src/helpers/WebConfigKeys.h b/src/helpers/WebConfigKeys.h index 21dc8503..dbfe67fa 100644 --- a/src/helpers/WebConfigKeys.h +++ b/src/helpers/WebConfigKeys.h @@ -18,7 +18,8 @@ // separately, see wcIsAdminPasswordKey below. static const char* const WC_ALLOWED_SET_KEYS[] = { // NodePrefs (radio / node) - "name", "bluetooth.name", "bluetooth.mac", "lat", "lon", "radio", "tx", "af", "rxdelay", "txdelay", + "name", "bluetooth.name", "bluetooth.mac", "bluetooth.stealth", + "lat", "lon", "radio", "tx", "af", "rxdelay", "txdelay", "cad", "radio.rxgain", "radio.fem.rxgain", "radio.rxps", "powersaving", "repeat", "advert.interval", "flood.advert.interval", @@ -66,7 +67,8 @@ static inline bool wcIsEspNowChannelKey(const char* key) { static inline bool wcSetKeyRequiresReboot(const char* key) { return key != NULL && (wcIsEspNowChannelKey(key) - || strcmp(key, "bluetooth.mac") == 0); + || strcmp(key, "bluetooth.mac") == 0 + || strcmp(key, "bluetooth.stealth") == 0); } // The admin password maps to the top-level `password` command, not a setter, so diff --git a/src/helpers/esp32/SerialBLEInterface.cpp b/src/helpers/esp32/SerialBLEInterface.cpp index 6b63f547..2b4459f8 100644 --- a/src/helpers/esp32/SerialBLEInterface.cpp +++ b/src/helpers/esp32/SerialBLEInterface.cpp @@ -27,6 +27,7 @@ extern "C" bool bleInUse(void) { #define CHARACTERISTIC_UUID_TX "6E400003-B5A3-F393-E0A9-E50E24DCCA9E" #define ADVERT_RESTART_DELAY 1000 // millis +#define BLE_BOND_PERSIST_TIMEOUT_MS 15000 static void clearStoredBluetoothBonds() { #if defined(CONFIG_NIMBLE_ENABLED) @@ -58,11 +59,245 @@ static void clearStoredBluetoothBonds() { #endif } +static bool bluetoothPeersEqual( + const mesh::companion::BluetoothPeerIdentity& lhs, + const mesh::companion::BluetoothPeerIdentity& rhs) { + return lhs.type == rhs.type + && memcmp(lhs.address, rhs.address, sizeof(lhs.address)) == 0; +} + +void SerialBLEInterface::noteSuccessfulConnection( + const mesh::companion::BluetoothPeerIdentity& peer) { + if (_stealth_pair_once) { + _advertisingSuppressed.store(true, std::memory_order_release); + _adv_restart_pending = false; + } + + if (!_successfulConnectionPending.load(std::memory_order_acquire)) { + _successfulPeer = peer; + _successfulConnectionStarted.store( + (uint32_t)millis(), std::memory_order_relaxed); + _successfulConnectionPending.store(true, std::memory_order_release); + } +} + +#if defined(CONFIG_NIMBLE_ENABLED) +static void bluetoothPeerFromNimbleAddress( + const ble_addr_t& address, + mesh::companion::BluetoothPeerIdentity& peer) { + peer.type = (address.type & 0x01u) == BLE_ADDR_PUBLIC + ? mesh::companion::BLUETOOTH_PEER_ADDRESS_PUBLIC + : mesh::companion::BLUETOOTH_PEER_ADDRESS_RANDOM; + for (size_t i = 0; i < mesh::companion::BLUETOOTH_MAC_BYTES; i++) { + peer.address[i] = address.val[ + mesh::companion::BLUETOOTH_MAC_BYTES - 1 - i]; + } +} + +static ble_addr_t nimbleAddressFromBluetoothPeer( + const mesh::companion::BluetoothPeerIdentity& peer) { + ble_addr_t address = {}; + address.type = + peer.type == mesh::companion::BLUETOOTH_PEER_ADDRESS_PUBLIC + ? BLE_ADDR_PUBLIC + : BLE_ADDR_RANDOM; + for (size_t i = 0; i < mesh::companion::BLUETOOTH_MAC_BYTES; i++) { + address.val[i] = peer.address[ + mesh::companion::BLUETOOTH_MAC_BYTES - 1 - i]; + } + return address; +} + +static bool nimbleBondExistsForPeer( + const mesh::companion::BluetoothPeerIdentity& peer) { + ble_addr_t bonded_peers[8]; + int count = 0; + if (ble_store_util_bonded_peers( + bonded_peers, &count, + sizeof(bonded_peers) / sizeof(bonded_peers[0])) != 0) { + return false; + } + for (int i = 0; i < count; i++) { + mesh::companion::BluetoothPeerIdentity candidate; + bluetoothPeerFromNimbleAddress(bonded_peers[i], candidate); + if (bluetoothPeersEqual(candidate, peer)) return true; + } + return false; +} +#else +static void bluetoothPeerFromBluedroidBond( + const esp_ble_bond_dev_t& bond, uint8_t fallback_type, + mesh::companion::BluetoothPeerIdentity& peer) { + const bool has_identity = + (bond.bond_key.key_mask & ESP_LE_KEY_PID) != 0; + const uint8_t* address = has_identity + ? bond.bond_key.pid_key.static_addr + : bond.bd_addr; + const uint8_t address_type = has_identity + ? bond.bond_key.pid_key.addr_type + : fallback_type; + peer.type = address_type == BLE_ADDR_TYPE_PUBLIC + ? mesh::companion::BLUETOOTH_PEER_ADDRESS_PUBLIC + : mesh::companion::BLUETOOTH_PEER_ADDRESS_RANDOM; + memcpy(peer.address, address, sizeof(peer.address)); +} + +static bool findBluedroidBondedPeer( + const mesh::companion::BluetoothPeerIdentity& requested, + mesh::companion::BluetoothPeerIdentity& resolved) { + int count = esp_ble_get_bond_device_num(); + if (count <= 0) return false; + + esp_ble_bond_dev_t* devices = static_cast( + malloc(sizeof(esp_ble_bond_dev_t) * count)); + if (devices == NULL) return false; + if (esp_ble_get_bond_device_list(&count, devices) != ESP_OK) { + free(devices); + return false; + } + + bool found = false; + for (int i = 0; i < count; i++) { + mesh::companion::BluetoothPeerIdentity candidate; + bluetoothPeerFromBluedroidBond( + devices[i], + requested.type == mesh::companion::BLUETOOTH_PEER_ADDRESS_PUBLIC + ? BLE_ADDR_TYPE_PUBLIC + : BLE_ADDR_TYPE_RANDOM, + candidate); + if (bluetoothPeersEqual(candidate, requested) + || memcmp(devices[i].bd_addr, requested.address, + sizeof(requested.address)) == 0 + || count == 1) { + resolved = candidate; + found = mesh::companion::isValidBluetoothPeerIdentity(resolved); + break; + } + } + free(devices); + return found; +} +#endif + +bool SerialBLEInterface::resolveSuccessfulPeer( + mesh::companion::BluetoothPeerIdentity& peer) const { +#if defined(CONFIG_NIMBLE_ENABLED) + if (!mesh::companion::isValidBluetoothPeerIdentity(_successfulPeer) + || !nimbleBondExistsForPeer(_successfulPeer)) { + return false; + } + peer = _successfulPeer; + return true; +#else + if (!mesh::companion::isValidBluetoothPeerIdentity(_successfulPeer)) { + return false; + } + return findBluedroidBondedPeer(_successfulPeer, peer); +#endif +} + +bool SerialBLEInterface::configureBondedOnlyAdvertising( + const mesh::companion::BluetoothPeerIdentity& peer, + bool require_stored_bond) { + if (!mesh::companion::isValidBluetoothPeerIdentity(peer) + || pServer == NULL) { + return false; + } + +#if defined(CONFIG_NIMBLE_ENABLED) + if (require_stored_bond && !nimbleBondExistsForPeer(peer)) { + requestBondedOnlyRecovery("saved peer bond is unavailable"); + return false; + } + const ble_addr_t native_peer = nimbleAddressFromBluetoothPeer(peer); + if (ble_gap_wl_set(&native_peer, 1) != 0) { + requestBondedOnlyRecovery("could not set NimBLE allowlist"); + return false; + } +#else + if (require_stored_bond) { + mesh::companion::BluetoothPeerIdentity resolved; + if (!findBluedroidBondedPeer(peer, resolved) + || !bluetoothPeersEqual(peer, resolved)) { + requestBondedOnlyRecovery("saved peer bond is unavailable"); + return false; + } + } + esp_bd_addr_t native_peer; + memcpy(native_peer, peer.address, sizeof(native_peer)); + const esp_ble_wl_addr_type_t address_type = + peer.type == mesh::companion::BLUETOOTH_PEER_ADDRESS_PUBLIC + ? BLE_WL_ADDR_TYPE_PUBLIC + : BLE_WL_ADDR_TYPE_RANDOM; + // The Bluedroid API adds one entry at a time. Replace any controller state + // left by an older mode/session so the requested peer is genuinely the only + // address allowed to scan or connect. + if (esp_ble_gap_clear_whitelist() != ESP_OK) { + requestBondedOnlyRecovery("could not clear Bluedroid allowlist"); + return false; + } + if (esp_ble_gap_update_whitelist(true, native_peer, address_type) + != ESP_OK) { + requestBondedOnlyRecovery("could not set Bluedroid allowlist"); + return false; + } +#endif + + BLEAdvertising* advertising = pServer->getAdvertising(); + if (advertising == NULL) { + requestBondedOnlyRecovery("Bluetooth advertising is unavailable"); + return false; + } + advertising->stop(); + BLEAdvertisementData minimal_advertisement; + minimal_advertisement.setFlags(ESP_BLE_ADV_FLAG_BREDR_NOT_SPT); + advertising->setScanResponse(false); + advertising->setScanFilter(true, true); + advertising->setAdvertisementData(minimal_advertisement); + + _bonded_only = true; + _stealth_pair_once = false; + _advertisingSuppressed.store(false, std::memory_order_release); + _adv_restart_pending = false; + if (_isEnabled && pServer->getConnectedCount() == 0) { + advertising->start(); + } + return true; +} + +void SerialBLEInterface::requestBondedOnlyRecovery(const char* cause) { + BLE_DEBUG_PRINTLN("SerialBLEInterface: stealth recovery required (%s)", + cause); + _bonded_only = true; + _stealth_pair_once = false; + _advertisingSuppressed.store(true, std::memory_order_release); + _bondedOnlyRecoveryPending.store(true, std::memory_order_release); + _adv_restart_pending = false; + if (pServer != NULL && pServer->getAdvertising() != NULL) { + pServer->getAdvertising()->stop(); + } +} + +bool SerialBLEInterface::advertisingAllowed() const { + return _isEnabled + && !_advertisingSuppressed.load(std::memory_order_acquire) + && !_bondedOnlyRecoveryPending.load(std::memory_order_acquire); +} + bool SerialBLEInterface::begin(const char* prefix, const char* name, uint32_t pin_code, const uint8_t* custom_address, - bool clear_bonds) { + bool clear_bonds, bool stealth_pair_once, + const mesh::companion::BluetoothPeerIdentity* + bonded_only_peer) { _pin_code = pin_code; + _successfulConnectionPending.store(false, std::memory_order_release); + _successfulConnectionStarted.store(0, std::memory_order_relaxed); + _bondedOnlyRecoveryPending.store(false, std::memory_order_release); + _advertisingSuppressed.store(false, std::memory_order_release); + _successfulPeer = mesh::companion::BluetoothPeerIdentity(); + _stealth_pair_once = stealth_pair_once; + _bonded_only = false; if (custom_address != nullptr && !mesh::companion::isValidBluetoothMac(custom_address)) { @@ -220,6 +455,9 @@ bool SerialBLEInterface::begin(const char* prefix, const char* name, pRxCharacteristic->setCallbacks(this); pServer->getAdvertising()->addServiceUUID(SERVICE_UUID); + if (bonded_only_peer != nullptr) { + configureBondedOnlyAdvertising(*bonded_only_peer, true); + } return true; } @@ -250,10 +488,14 @@ bool SerialBLEInterface::onSecurityRequest() { #if defined(CONFIG_NIMBLE_ENABLED) void SerialBLEInterface::onAuthenticationComplete(ble_gap_conn_desc* desc) { const bool success = desc != NULL && desc->sec_state.encrypted && - desc->sec_state.authenticated; + desc->sec_state.authenticated + && desc->sec_state.bonded; if (success) { BLE_DEBUG_PRINTLN(" - SecurityCallback - Authentication Success"); deviceConnected = true; + mesh::companion::BluetoothPeerIdentity peer; + bluetoothPeerFromNimbleAddress(desc->peer_id_addr, peer); + noteSuccessfulConnection(peer); } else { BLE_DEBUG_PRINTLN(" - SecurityCallback - Authentication Failure"); @@ -268,10 +510,15 @@ void SerialBLEInterface::onAuthenticationComplete(ble_gap_conn_desc* desc) { } deviceConnected = false; + if (_bonded_only) { + requestBondedOnlyRecovery("bond authentication failed"); + } if (desc != NULL) { pServer->disconnect(desc->conn_handle); } - scheduleAdvertisingRestart((uint32_t)millis()); + if (advertisingAllowed()) { + scheduleAdvertisingRestart((uint32_t)millis()); + } } } #else @@ -279,6 +526,12 @@ void SerialBLEInterface::onAuthenticationComplete(esp_ble_auth_cmpl_t cmpl) { if (cmpl.success) { BLE_DEBUG_PRINTLN(" - SecurityCallback - Authentication Success"); deviceConnected = true; + mesh::companion::BluetoothPeerIdentity peer; + peer.type = cmpl.addr_type == BLE_ADDR_TYPE_PUBLIC + ? mesh::companion::BLUETOOTH_PEER_ADDRESS_PUBLIC + : mesh::companion::BLUETOOTH_PEER_ADDRESS_RANDOM; + memcpy(peer.address, cmpl.bd_addr, sizeof(peer.address)); + noteSuccessfulConnection(peer); } else { BLE_DEBUG_PRINTLN(" - SecurityCallback - Authentication Failure, reason=%u", (unsigned)cmpl.fail_reason); @@ -294,8 +547,13 @@ void SerialBLEInterface::onAuthenticationComplete(esp_ble_auth_cmpl_t cmpl) { } deviceConnected = false; + if (_bonded_only) { + requestBondedOnlyRecovery("bond authentication failed"); + } pServer->disconnect(pServer->getConnId()); - scheduleAdvertisingRestart((uint32_t)millis()); + if (advertisingAllowed()) { + scheduleAdvertisingRestart((uint32_t)millis()); + } } } #endif @@ -355,7 +613,7 @@ void SerialBLEInterface::onDisconnect(BLEServer* pServer) { xQueueReset(recv_queue); _tx_reset_pending.store(true, std::memory_order_release); if (pTxDescriptor != NULL) pTxDescriptor->setNotifications(false); - if (_isEnabled) { + if (advertisingAllowed()) { scheduleAdvertisingRestart((uint32_t)millis()); } } @@ -416,6 +674,47 @@ void SerialBLEInterface::onStatus(BLECharacteristic* pCharacteristic, Status sta // ---------- public methods +bool SerialBLEInterface::takeSuccessfulConnection( + mesh::companion::BluetoothPeerIdentity* peer) { + if (!_successfulConnectionPending.load(std::memory_order_acquire)) { + return false; + } + if (peer != nullptr && !resolveSuccessfulPeer(*peer)) { + // Bond storage can finish shortly after authentication. Keep the event + // pending so the main loop can retry without reopening general access. A + // failed bond write must not leave the node unavailable indefinitely. + const uint32_t started = _successfulConnectionStarted.load( + std::memory_order_relaxed); + if (_stealth_pair_once + && (uint32_t)((uint32_t)millis() - started) + >= BLE_BOND_PERSIST_TIMEOUT_MS) { + _successfulConnectionPending.store(false, std::memory_order_release); + requestBondedOnlyRecovery("new peer bond did not persist"); + } + return false; + } + const bool pending = _successfulConnectionPending.exchange( + false, std::memory_order_acq_rel); + if (pending) { + _successfulConnectionStarted.store(0, std::memory_order_relaxed); + } + return pending; +} + +bool SerialBLEInterface::enableBondedOnlyAdvertising( + const mesh::companion::BluetoothPeerIdentity& peer) { + return configureBondedOnlyAdvertising(peer, false); +} + +void SerialBLEInterface::cancelStealthPairingTransition() { + if (!_stealth_pair_once) return; + _stealth_pair_once = false; + _advertisingSuppressed.store(false, std::memory_order_release); + if (_isEnabled && pServer != NULL && pServer->getConnectedCount() == 0) { + scheduleAdvertisingRestart((uint32_t)millis()); + } +} + void SerialBLEInterface::clearBuffers() { xQueueReset(recv_queue); send_queue_len = 0; @@ -435,6 +734,10 @@ void SerialBLEInterface::servicePendingTxReset() { } void SerialBLEInterface::scheduleAdvertisingRestart(uint32_t now) { + if (!advertisingAllowed()) { + _adv_restart_pending = false; + return; + } _adv_restart_started = now; _adv_restart_pending = true; } @@ -446,7 +749,7 @@ void SerialBLEInterface::serviceTxRecovery(uint32_t now) { BLE_DEBUG_PRINTLN("SerialBLEInterface: stalled TX link is already closed"); deviceConnected = false; clearBuffers(); - if (_isEnabled) scheduleAdvertisingRestart(now); + if (advertisingAllowed()) scheduleAdvertisingRestart(now); return; } @@ -488,7 +791,9 @@ void SerialBLEInterface::enable() { //pServer->getAdvertising()->setMinInterval(500); //pServer->getAdvertising()->setMaxInterval(1000); - pServer->getAdvertising()->start(); + if (advertisingAllowed()) { + pServer->getAdvertising()->start(); + } _adv_restart_pending = false; } @@ -607,7 +912,7 @@ size_t SerialBLEInterface::checkRecvFrame(uint8_t dest[]) { //pServer->getAdvertising()->setMinInterval(500); //pServer->getAdvertising()->setMaxInterval(1000); - scheduleAdvertisingRestart(now); + if (advertisingAllowed()) scheduleAdvertisingRestart(now); } else { BLE_DEBUG_PRINTLN("SerialBLEInterface -> stopping advertising"); BLE_DEBUG_PRINTLN("SerialBLEInterface -> connecting..."); @@ -619,7 +924,7 @@ size_t SerialBLEInterface::checkRecvFrame(uint8_t dest[]) { oldDeviceConnected = deviceConnected; } - if (_adv_restart_pending && + if (advertisingAllowed() && _adv_restart_pending && mesh::bleElapsedAtLeast(now, _adv_restart_started, ADVERT_RESTART_DELAY)) { if (pServer->getConnectedCount() == 0) { diff --git a/src/helpers/esp32/SerialBLEInterface.h b/src/helpers/esp32/SerialBLEInterface.h index e2da48fb..41faf4a1 100644 --- a/src/helpers/esp32/SerialBLEInterface.h +++ b/src/helpers/esp32/SerialBLEInterface.h @@ -1,6 +1,7 @@ #pragma once #include "../BaseSerialInterface.h" +#include "../BluetoothMac.h" #include "../BleTxStallWatchdog.h" #include "../UsbLogging.h" #include @@ -30,6 +31,13 @@ class SerialBLEInterface : public BaseSerialInterface, BLESecurityCallbacks, BLE mesh::BleDisconnectRecovery _tx_disconnect_recovery; std::atomic _tx_reset_pending{false}; std::atomic _pairingRequestPending{false}; + std::atomic _successfulConnectionPending{false}; + std::atomic _successfulConnectionStarted{0}; + mesh::companion::BluetoothPeerIdentity _successfulPeer; + bool _stealth_pair_once; + bool _bonded_only; + std::atomic _advertisingSuppressed{false}; + std::atomic _bondedOnlyRecoveryPending{false}; struct Frame { uint8_t len; @@ -48,6 +56,15 @@ class SerialBLEInterface : public BaseSerialInterface, BLESecurityCallbacks, BLE void scheduleAdvertisingRestart(uint32_t now); void recoverStalledTx(const char* cause); void serviceTxRecovery(uint32_t now); + void noteSuccessfulConnection( + const mesh::companion::BluetoothPeerIdentity& peer); + bool resolveSuccessfulPeer( + mesh::companion::BluetoothPeerIdentity& peer) const; + bool configureBondedOnlyAdvertising( + const mesh::companion::BluetoothPeerIdentity& peer, + bool require_stored_bond); + void requestBondedOnlyRecovery(const char* cause); + bool advertisingAllowed() const; protected: // BLESecurityCallbacks methods @@ -95,6 +112,8 @@ public: _adv_restart_started = 0; _adv_restart_pending = false; _isEnabled = false; + _stealth_pair_once = false; + _bonded_only = false; _last_write = 0; last_conn_id = 0; recv_queue = xQueueCreateStatic( @@ -110,10 +129,14 @@ public: * @param pin_code the BLE security pin * @param custom_address optional human-order BLE random-static address * @param clear_bonds clear saved peer bonds before accepting connections + * @param stealth_pair_once suppress general advertising after first pairing + * @param bonded_only_peer optional peer allowed to reconnect in stealth mode */ bool begin(const char* prefix, const char* name, uint32_t pin_code, const uint8_t* custom_address = nullptr, - bool clear_bonds = false); + bool clear_bonds = false, bool stealth_pair_once = false, + const mesh::companion::BluetoothPeerIdentity* + bonded_only_peer = nullptr); // BaseSerialInterface methods void enable() override; @@ -130,6 +153,15 @@ public: bool takePairingRequest() override { return _pairingRequestPending.exchange(false, std::memory_order_acq_rel); } + bool takeSuccessfulConnection( + mesh::companion::BluetoothPeerIdentity* peer = nullptr); + bool enableBondedOnlyAdvertising( + const mesh::companion::BluetoothPeerIdentity& peer); + void cancelStealthPairingTransition(); + bool takeBondedOnlyRecovery() { + return _bondedOnlyRecoveryPending.exchange( + false, std::memory_order_acq_rel); + } size_t writeFrame(const uint8_t src[], size_t len) override; size_t checkRecvFrame(uint8_t dest[]) override; }; diff --git a/src/helpers/esp32/WebConfigHtml.h b/src/helpers/esp32/WebConfigHtml.h index 580fb149..bcbdc97c 100644 --- a/src/helpers/esp32/WebConfigHtml.h +++ b/src/helpers/esp32/WebConfigHtml.h @@ -1,14 +1,14 @@ // Auto-generated by scripts/generate_webconfig_html.py from webui/index.html // DO NOT EDIT - edit webui/index.html instead. -// build-inputs-sha256: 3fb52cf2aeb600295e1b84fb479d64ae8685c6f6f3c32b796bddf2af384c4d49 +// build-inputs-sha256: f75964fac3a14aee420b0b0a43c99478f215f5fe04a5d84a9bc932bd79edd024 #pragma once #include #include -const uint32_t WEBCONFIG_HTML_RAW_LEN = 103304; -const uint32_t WEBCONFIG_HTML_GZ_LEN = 31246; -const char WEBCONFIG_HTML_ETAG[] = "\"10fdc243071fca2e\""; -const char WEBCONFIG_HTML_VERSION[] = "3538fcedf0acfff3"; +const uint32_t WEBCONFIG_HTML_RAW_LEN = 104335; +const uint32_t WEBCONFIG_HTML_GZ_LEN = 31525; +const char WEBCONFIG_HTML_ETAG[] = "\"4500d94e74301200\""; +const char WEBCONFIG_HTML_VERSION[] = "bf41bdcee45b724d"; const uint16_t WEBCONFIG_HTML_LOADER_LEN = 762; const uint8_t WEBCONFIG_HTML_LOADER[] PROGMEM = { 0x3c,0x21,0x64,0x6f,0x63,0x74,0x79,0x70,0x65,0x20,0x68,0x74,0x6d,0x6c,0x3e,0x3c, @@ -32,8 +32,8 @@ const uint8_t WEBCONFIG_HTML_LOADER[] PROGMEM = { 0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x3d,0x3e,0x63,0x2e,0x61,0x62,0x6f,0x72, 0x74,0x28,0x29,0x2c,0x39,0x30,0x30,0x30,0x30,0x29,0x3b,0x74,0x72,0x79,0x7b,0x63, 0x6f,0x6e,0x73,0x74,0x20,0x72,0x3d,0x61,0x77,0x61,0x69,0x74,0x20,0x66,0x65,0x74, - 0x63,0x68,0x28,0x22,0x2f,0x75,0x69,0x3f,0x76,0x3d,0x33,0x35,0x33,0x38,0x66,0x63, - 0x65,0x64,0x66,0x30,0x61,0x63,0x66,0x66,0x66,0x33,0x22,0x2c,0x63,0x3f,0x7b,0x73, + 0x63,0x68,0x28,0x22,0x2f,0x75,0x69,0x3f,0x76,0x3d,0x62,0x66,0x34,0x31,0x62,0x64, + 0x63,0x65,0x65,0x34,0x35,0x62,0x37,0x32,0x34,0x64,0x22,0x2c,0x63,0x3f,0x7b,0x73, 0x69,0x67,0x6e,0x61,0x6c,0x3a,0x63,0x2e,0x73,0x69,0x67,0x6e,0x61,0x6c,0x7d,0x3a, 0x7b,0x7d,0x29,0x3b,0x69,0x66,0x28,0x72,0x2e,0x6f,0x6b,0x29,0x70,0x3d,0x61,0x77, 0x61,0x69,0x74,0x20,0x72,0x2e,0x74,0x65,0x78,0x74,0x28,0x29,0x3b,0x65,0x6c,0x73, @@ -63,1956 +63,1974 @@ const uint8_t WEBCONFIG_HTML_LOADER[] PROGMEM = { const uint8_t WEBCONFIG_HTML_GZ[] PROGMEM = { 0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0xdc,0xbd,0x69,0x7b,0xdb,0xc6, - 0xb2,0x20,0xfc,0x5d,0xbf,0x02,0x86,0x73,0x25,0x22,0x02,0x21,0x6e,0x92,0x65,0xd2, - 0x94,0x46,0x91,0xed,0xc4,0x37,0x5e,0x34,0x92,0x7c,0x92,0x3b,0x8a,0x8f,0x07,0x24, - 0x41,0x11,0x47,0x20,0x80,0x00,0xa0,0x16,0x53,0x9a,0xdf,0xfe,0xd6,0xd2,0x0d,0x34, - 0x36,0x8a,0x72,0x72,0x9f,0x33,0xef,0x9c,0x7b,0x63,0x11,0xbd,0x77,0x75,0x75,0x6d, - 0x5d,0x5d,0xfd,0xea,0xd9,0xeb,0x4f,0xc7,0xe7,0xff,0x75,0xf2,0x46,0x9b,0x25,0x73, - 0xef,0x60,0xe3,0x15,0xfe,0xd1,0x3c,0xdb,0xbf,0x1c,0xea,0x8e,0xaf,0x63,0x82,0x63, - 0x4f,0xe0,0xcf,0xdc,0x49,0x6c,0x6d,0x3c,0xb3,0xa3,0xd8,0x49,0x86,0xfa,0x22,0x99, - 0x36,0xf7,0x75,0x99,0xec,0xdb,0x73,0x67,0xa8,0x5f,0xbb,0xce,0x4d,0x18,0x44,0x89, - 0xae,0x8d,0x03,0x3f,0x71,0x7c,0x28,0x76,0xe3,0x4e,0x92,0xd9,0x70,0xe2,0x5c,0xbb, - 0x63,0xa7,0x49,0x1f,0xa6,0xe6,0xfa,0x6e,0xe2,0xda,0x5e,0x33,0x1e,0xdb,0x9e,0x33, - 0x6c,0x9b,0xda,0xdc,0xbe,0x75,0xe7,0x8b,0x79,0x96,0x20,0x1b,0x6a,0x4e,0xdd,0x64, - 0x38,0x0e,0xae,0x9d,0x08,0x7b,0x4a,0xdc,0xc4,0x73,0x0e,0x3e,0x38,0xf1,0xec,0x38, - 0x88,0x1c,0xed,0x38,0xf0,0xa7,0xee,0xe5,0xab,0x1d,0x4e,0xde,0x78,0x15,0x27,0x77, - 0xf8,0xb7,0x1f,0x05,0x41,0xb2,0xdc,0x68,0x36,0x47,0x97,0xfd,0xe7,0xd3,0xde,0x74, - 0x6f,0xba,0x3f,0xd0,0x9a,0xcd,0xb1,0x1d,0x4d,0xe0,0x7b,0x3a,0xc5,0x0f,0xd7,0xbf, - 0xea,0x3f,0x6f,0xdb,0x9d,0x6e,0xb7,0x85,0x9f,0xf3,0x45,0xd2,0x7f,0xbe,0xb7,0xf7, - 0xa2,0xbb,0x6f,0xe3,0xa7,0xe7,0xfa,0x4e,0xff,0xb9,0xd3,0x71,0x5e,0x38,0xce,0x00, - 0x1a,0xb2,0xc7,0xe3,0xfe,0xf3,0xce,0xe8,0xc5,0xc4,0x79,0x89,0xd9,0xf0,0xc9,0x0d, - 0x88,0xc6,0x02,0x6c,0x6b,0xf2,0x72,0xb2,0x4b,0x5f,0x4e,0x14,0xf5,0x9f,0x4f,0xf6, - 0x7a,0xbb,0xbd,0x5d,0xfc,0xbc,0xb1,0x23,0xbf,0xff,0x7c,0xbc,0xbf,0xff,0xa2,0x6d, - 0x63,0x5b,0xe3,0x99,0x1b,0x42,0xdb,0xce,0xb4,0x33,0x7d,0xc1,0x23,0xe1,0x71,0xca, - 0x71,0x89,0xce,0xc7,0xfb,0x93,0xce,0xc4,0xc1,0xa4,0x78,0x66,0x4f,0x82,0x9b,0x7e, - 0x4b,0x6b,0x87,0xb7,0x5a,0x17,0xfe,0x8b,0x2e,0x47,0x76,0xa3,0xbd,0x67,0x76,0xf6, - 0xcd,0xde,0xae,0x69,0xb5,0xf6,0x8d,0xc1,0xc6,0xc3,0xc6,0xff,0x98,0x3b,0x13,0xd7, - 0xd6,0x1a,0x61,0xe4,0x4c,0x9d,0x28,0x6e,0x8e,0x03,0x2f,0x88,0x00,0xa0,0x33,0x67, - 0xee,0xf4,0x27,0x76,0x74,0x65,0x2c,0x73,0x80,0x69,0xb7,0xda,0xbb,0xed,0x71,0x06, - 0x18,0x00,0x46,0xbb,0x33,0x4a,0x61,0xe3,0xec,0x39,0xa3,0x69,0x27,0x85,0xcd,0xfe, - 0xe8,0xe5,0xbe,0x3d,0xca,0x60,0xd3,0xb1,0xbb,0xbd,0x5e,0x27,0x85,0x4d,0xcf,0x7e, - 0xd9,0x9b,0x12,0x24,0x79,0x7a,0x9d,0x6e,0x67,0xd2,0xb5,0x95,0xe9,0xb5,0x7b,0xd0, - 0x7e,0x27,0x37,0xc3,0xae,0xdd,0xdb,0xdb,0xdd,0xab,0x9f,0x61,0xcb,0xc4,0xff,0xb3, - 0x7a,0x38,0xbb,0x87,0x8d,0x1f,0x97,0xa3,0xe0,0xb6,0x19,0xbb,0xdf,0x5c,0xff,0xb2, - 0x3f,0x0a,0xa2,0x89,0x13,0x35,0x21,0x65,0x30,0xb7,0xa3,0x4b,0xd7,0xef,0xb7,0x1e, - 0x36,0x10,0x6b,0x97,0xcd,0x1b,0x67,0x74,0xe5,0x26,0xcd,0xc4,0xb9,0x4d,0xb0,0xb4, - 0xd3,0xb4,0x27,0xff,0x5a,0xc4,0x49,0xbf,0xdd,0x6a,0xfd,0xc7,0xc3,0xc6,0x28,0x98, - 0xdc,0x2d,0xa7,0x80,0x9a,0xfd,0xf6,0x6e,0x78,0xbb,0xd3,0xb6,0x7a,0xbb,0x5a,0x7c, - 0x17,0x27,0xce,0xbc,0xb9,0x70,0xcd,0xa6,0x1d,0x86,0x9e,0xd3,0xe4,0x04,0x53,0x3f, - 0x73,0x2e,0x03,0x47,0xfb,0xfc,0x4e,0x37,0x4f,0x83,0x51,0x90,0x04,0x66,0x6c,0xfb, - 0x71,0x33,0x76,0x22,0x77,0x3a,0x18,0xd9,0xe3,0xab,0xcb,0x28,0x58,0xf8,0x93,0xfe, - 0xb5,0x1d,0x35,0x10,0xa4,0xc6,0x80,0x40,0x2e,0xbe,0x01,0x88,0xc6,0x20,0xb4,0x27, - 0x13,0x18,0x2f,0x0c,0x34,0x49,0x82,0x79,0xff,0x65,0x2b,0xbc,0x1d,0x20,0x2e,0x4f, - 0xbd,0xe0,0xa6,0x79,0xdb,0x9f,0xb9,0x93,0x89,0xe3,0xc3,0xc8,0xdb,0x34,0x26,0x1a, - 0x6f,0xbf,0xfd,0x02,0x0a,0xd1,0xe7,0x8d,0xe3,0x5e,0xce,0x92,0xfe,0xde,0x2e,0x4e, - 0xae,0xa3,0x16,0xe9,0x95,0x8b,0x0c,0x68,0xc6,0x49,0x04,0x43,0x9c,0x06,0xd1,0xbc, - 0xbf,0x08,0x43,0x27,0x1a,0xdb,0xb1,0x33,0xf0,0x9c,0x24,0x01,0x60,0xc5,0xa1,0x3d, - 0x46,0xd8,0x59,0xad,0x5d,0x67,0x9e,0x1b,0x2a,0x2c,0xb0,0x21,0xe1,0xd8,0xe9,0x00, - 0xf8,0x61,0x21,0x60,0xa4,0xd8,0x69,0x7f,0xea,0x46,0x71,0x82,0x8b,0xea,0x4d,0x96, - 0x5c,0xa4,0x99,0x04,0x21,0x82,0xdb,0x5e,0xaa,0x6d,0x00,0x16,0x18,0x50,0x01,0xe8, - 0x84,0x13,0x2d,0x27,0x6e,0x1c,0x7a,0xf6,0x5d,0x7f,0xea,0x39,0xb7,0x03,0xdb,0x73, - 0x2f,0xfd,0xa6,0x0b,0x10,0x8d,0xfb,0x63,0xa0,0x08,0x4e,0x34,0xb8,0xb4,0xc3,0x3e, - 0xf6,0x20,0xe1,0xd3,0x6f,0x63,0xaf,0xed,0x3d,0x48,0x29,0xc1,0x15,0x91,0xd3,0x18, - 0xa4,0x0b,0x4e,0x70,0x44,0x34,0x89,0x03,0xcf,0x9d,0x68,0x5c,0x06,0xf1,0x09,0x80, - 0x1d,0xc4,0x40,0x55,0x02,0xbf,0x1f,0x27,0xee,0xf8,0xea,0x6e,0x40,0xe3,0x1c,0x7c, - 0x83,0x95,0x98,0x38,0xb7,0xd0,0x9f,0x1c,0x9e,0x16,0x5f,0x5f,0x2e,0x71,0x68,0x7d, - 0x3f,0xf0,0x9d,0x87,0x0d,0x6b,0x86,0x04,0x6c,0x39,0x87,0xa9,0x11,0x79,0xc2,0xc9, - 0x71,0x9a,0x36,0x71,0xaf,0x55,0xb0,0xc3,0x28,0xcb,0x80,0xbb,0x99,0xc1,0xdc,0x08, - 0xba,0x0e,0x34,0x78,0x13,0xd9,0x61,0xba,0xc4,0x62,0x81,0x79,0x69,0xd2,0x44,0xc7, - 0xf3,0xdc,0x30,0x76,0x63,0xe8,0x65,0x64,0x4f,0x2e,0x1d,0x09,0x57,0xcf,0x99,0x26, - 0x7d,0x7b,0x91,0x04,0x83,0x74,0x70,0x03,0xa5,0xf3,0x76,0xc5,0x9a,0x4b,0xf8,0xe1, - 0x9e,0x79,0x89,0xd0,0x63,0x30,0x45,0xf6,0xc4,0x5d,0xc4,0xfd,0x97,0x2f,0x2b,0x01, - 0x0a,0x1b,0xd4,0x28,0x4d,0x43,0x0e,0xc6,0x02,0xd2,0xbe,0x08,0x97,0x4a,0xad,0xe7, - 0xd3,0xae,0xb3,0x3f,0xe9,0x8a,0x1a,0xcf,0xf7,0xed,0xdd,0x71,0x8b,0x20,0xe4,0x02, - 0x89,0xcf,0xe0,0x38,0x50,0x67,0xb1,0xaf,0xac,0x2d,0x8e,0x6d,0x3f,0x1d,0x5b,0x69, - 0xed,0x04,0x39,0x30,0x0a,0x63,0xc7,0x4d,0xb0,0x51,0x1a,0x3b,0x11,0x93,0xf2,0xe0, - 0x07,0xe3,0x45,0x14,0x43,0x4a,0x18,0xb8,0x84,0x5f,0xd8,0x60,0x73,0xc6,0x60,0x6a, - 0x5b,0xdd,0xc1,0x06,0xed,0xf8,0x17,0x2d,0xc0,0xeb,0x0e,0xed,0xfa,0xae,0xb6,0x70, - 0x9b,0xf3,0xc0,0x0f,0x68,0xd9,0xcc,0x0f,0x8e,0xef,0x05,0x26,0x70,0x13,0x18,0x98, - 0x1d,0x9b,0x69,0x86,0x9c,0x65,0x7f,0x86,0x8b,0x57,0xc2,0x77,0x39,0xe4,0xf2,0x3e, - 0x58,0x83,0x16,0xd7,0x82,0xbb,0x6b,0x77,0xa6,0xed,0x9e,0x04,0xb7,0xd3,0x1a,0xf5, - 0x76,0xc7,0x40,0xff,0xe6,0xb6,0xeb,0x03,0xa6,0xdc,0x0a,0x1c,0xdd,0xeb,0xe1,0xfe, - 0x91,0xc4,0x4f,0x23,0xb4,0x49,0x77,0xd3,0x1e,0x6e,0x5e,0x0b,0x77,0xce,0x72,0xe5, - 0x7e,0xaa,0xd9,0x48,0xf9,0x95,0x20,0xac,0x57,0x9b,0x1e,0x10,0x21,0x66,0x92,0xcd, - 0xd5,0xf8,0x43,0xd2,0x90,0x74,0x97,0xf6,0x68,0x18,0x89,0x3d,0x8a,0xf3,0x14,0x01, - 0xb7,0x7f,0xaf,0x1e,0x35,0x65,0x5f,0xbd,0x12,0x42,0xb7,0xb3,0x39,0x57,0x74,0xa2, - 0x8d,0x16,0x90,0x24,0x50,0xb2,0x2d,0xa7,0xd8,0x52,0xbb,0x21,0x44,0x2d,0x61,0x0f, - 0x61,0x87,0xeb,0xcf,0x80,0xb0,0x27,0xea,0x8e,0xeb,0x5a,0xbb,0xc5,0x3d,0xd7,0xca, - 0xf6,0x1c,0x60,0xa8,0x56,0x1e,0x22,0xe2,0x6d,0x1e,0x1b,0xf3,0xa3,0xb3,0x60,0x80, - 0x35,0x6b,0x52,0xe2,0x1e,0x75,0x70,0x86,0x16,0xa7,0xcb,0x02,0x18,0xba,0x04,0x86, - 0x29,0x48,0x6d,0x23,0xc7,0x4b,0xc1,0x3d,0xf2,0x82,0xf1,0x95,0x3a,0xa5,0x4e,0xe5, - 0x94,0xf2,0x6d,0xf5,0x44,0x53,0x80,0xfb,0x7e,0xa2,0x92,0xbf,0x36,0x55,0xae,0xe1, - 0x1c,0xc4,0x16,0x68,0x14,0xae,0x1f,0x2e,0x92,0x8b,0xe4,0x2e,0x74,0x86,0x48,0xf8, - 0xbe,0x98,0x4a,0x42,0x68,0xc7,0xf1,0x0d,0x00,0x2c,0x97,0xe8,0x2f,0xe6,0x23,0x27, - 0xca,0x25,0x39,0x80,0xee,0xde,0x17,0x33,0x76,0x3c,0x67,0x0c,0x12,0x0b,0xe3,0x3c, - 0xb2,0xf0,0x14,0xfc,0xfb,0xc8,0x31,0x5a,0x62,0x32,0x55,0xab,0xb7,0x57,0x18,0x2b, - 0x83,0xb4,0x86,0xa2,0x6c,0x3c,0x8d,0x3a,0x21,0x3d,0x0b,0x16,0x09,0xc9,0x31,0xc4, - 0x44,0x34,0x6d,0xe7,0x47,0xed,0x60,0x88,0x9d,0xf6,0xb5,0x18,0x40,0x11,0x6b,0xee, - 0xa7,0x33,0xed,0x5b,0x10,0xcc,0x9b,0x81,0xdf,0x9c,0x06,0xe3,0x45,0xac,0x35,0x62, - 0x77,0xe2,0xdc,0xd8,0x77,0x20,0x43,0x8c,0xa3,0xc0,0xf3,0x40,0x0c,0xd6,0xc6,0x76, - 0x98,0xb8,0xd7,0x8e,0x16,0xcf,0x1c,0x27,0x31,0xb4,0x1f,0x77,0x18,0x7c,0x7d,0xaa, - 0x21,0xe6,0xcf,0x1f,0xcb,0x1a,0x6a,0xa3,0xa2,0x49,0x4b,0xc3,0xff,0x43,0x66,0xca, - 0x14,0x67,0xee,0xde,0x36,0xa0,0x93,0x18,0xe4,0x29,0x33,0xab,0xa1,0x75,0x76,0xff, - 0xc3,0x24,0x49,0x21,0xb4,0x23,0xe0,0xc8,0x86,0x58,0x33,0x6b,0xe2,0x46,0xc9,0x9d, - 0xe8,0x94,0x3f,0xaa,0x3a,0x45,0x81,0x16,0x71,0x30,0xbc,0xba,0x4c,0x11,0xed,0x32, - 0x72,0x27,0x03,0xfc,0x07,0x04,0xaf,0x39,0xa4,0x00,0x47,0x84,0x2a,0x8b,0xb9,0x1f, - 0xf7,0x23,0x27,0x74,0xec,0xa4,0x81,0x14,0x0a,0x84,0x79,0xcf,0x33,0x81,0xd1,0x02, - 0x1d,0x6b,0xb4,0x51,0xd4,0x30,0xdb,0xd3,0xc8,0x30,0x88,0x22,0x74,0x04,0x9f,0xf8, - 0x8e,0xa5,0x50,0x70,0xa2,0x6e,0x85,0x11,0xa3,0x79,0x4a,0x1a,0x0d,0x7c,0xe5,0xbc, - 0xd6,0x12,0x60,0xf6,0xe4,0x46,0xaa,0xdb,0x59,0xbd,0x74,0x67,0x01,0x11,0xda,0x40, - 0xf1,0x42,0xb0,0xa4,0xce,0x5e,0x15,0x91,0x08,0xaf,0x34,0x5a,0x85,0xa5,0x40,0x76, - 0x6c,0x4e,0xf2,0xb0,0x5d,0x85,0xd6,0x0f,0x54,0xd1,0x05,0x2a,0xc1,0x22,0xfa,0xcb, - 0xf5,0x24,0x8e,0x0a,0x59,0x85,0xda,0xb0,0xd7,0x97,0xd8,0x94,0xcd,0xbe,0x9b,0x07, - 0x00,0x51,0x07,0x68,0xce,0xf3,0xaf,0x96,0x45,0x92,0x2b,0x96,0x94,0x7e,0xcb,0xc5, - 0x6a,0xd5,0xee,0xdc,0x32,0x9d,0x21,0x3c,0xdf,0x28,0x70,0x79,0x9a,0xe3,0xc4,0x19, - 0x07,0x91,0x4d,0x62,0x1f,0xf4,0xe6,0x44,0x88,0x22,0x38,0xa7,0x69,0xbc,0x98,0x2f, - 0xeb,0x48,0x55,0x2a,0x69,0x41,0xc9,0x28,0xb8,0x29,0x73,0x27,0x12,0x7f,0x31,0xeb, - 0x00,0x28,0xad,0xe0,0x27,0x79,0xf9,0x30,0xbc,0x29,0x55,0x54,0xc1,0x16,0x27,0x91, - 0x93,0x8c,0x67,0xd4,0xd8,0x3e,0x81,0x85,0x2a,0x88,0x15,0xae,0x6f,0x11,0x90,0xf3, - 0x26,0x9e,0x41,0xcb,0x59,0xde,0x5e,0x87,0xea,0xc7,0x37,0x8f,0x2e,0x12,0xea,0x39, - 0xee,0xf4,0xae,0x29,0x54,0xef,0x3e,0xad,0x73,0x73,0xe4,0x24,0x37,0x0e,0xa0,0x44, - 0x49,0xe8,0x7e,0x89,0x92,0x3e,0xb5,0x4c,0x38,0xa4,0x8d,0xea,0xd9,0x46,0x25,0x27, - 0x54,0xaa,0xba,0x82,0x4d,0xa0,0xfe,0x0d,0xab,0x1c,0xcd,0x6d,0x6f,0xf0,0x28,0xe3, - 0x40,0xc6,0x78,0xe9,0x2d,0x53,0xb1,0x3d,0x72,0x80,0x6e,0x00,0x2d,0x1c,0xf0,0xbc, - 0x7b,0x9d,0x6c,0x03,0x74,0x48,0xe1,0x51,0xf0,0x1e,0x2a,0x0a,0x58,0xa6,0xd5,0x81, - 0xc7,0x02,0xc5,0x49,0x9c,0x41,0x80,0x8a,0x4e,0x72,0x07,0x08,0xa6,0xb0,0x0d,0xb9, - 0x93,0xf0,0x77,0xba,0x93,0xca,0x8c,0x1a,0x9a,0x5d,0x54,0x34,0xe9,0xfa,0x20,0xa7, - 0xe5,0x45,0x89,0x95,0x44,0x89,0x24,0x6f,0xa2,0xb0,0xdc,0x90,0xd5,0xde,0x8d,0x07, - 0xa2,0x9b,0xa6,0x73,0x0d,0x8b,0x13,0xab,0x33,0x59,0xf4,0x47,0x0e,0x28,0x6d,0xce, - 0x52,0xae,0x9c,0xae,0x0f,0xca,0x83,0x10,0x0c,0x76,0x40,0xd8,0x8b,0x3f,0xc4,0xf4, - 0xf6,0x15,0x42,0x51,0xa0,0x80,0x64,0x55,0xc8,0x0f,0x6d,0x17,0x00,0x50,0x18,0x99, - 0x0a,0xcf,0x3e,0xc8,0xa8,0xe3,0x2b,0x67,0xb2,0xbd,0x28,0x8b,0x29,0x2c,0xdb,0x56, - 0x95,0x95,0xe3,0xa7,0xa1,0x75,0xda,0x88,0xb0,0x42,0xdc,0x19,0x25,0x7e,0x8a,0x56, - 0xae,0x4f,0x82,0xf9,0xba,0xe8,0x5b,0xa0,0xb5,0xa9,0x3c,0x57,0x47,0x36,0xaa,0x94, - 0xe2,0x0d,0x15,0xd9,0xdb,0x7b,0x65,0x15,0xa9,0x44,0x89,0x07,0x95,0xd3,0x2e,0x52, - 0x23,0x92,0x26,0xd4,0x49,0x82,0x20,0x3f,0x5e,0xae,0xa1,0x6b,0x15,0xeb,0xf5,0x01, - 0x38,0xf6,0xc8,0x73,0x26,0x4b,0x89,0xb6,0xd6,0xae,0x1c,0xd1,0xc4,0x99,0xda,0x0b, - 0x2f,0xc9,0x77,0x33,0x5f,0x96,0x98,0x8e,0x9c,0xe3,0x9e,0x10,0x89,0x50,0xf6,0x87, - 0x8e,0x8b,0x70,0x2f,0xed,0xea,0x55,0x1a,0x65,0x27,0xa7,0xb5,0xe5,0xf0,0x5a,0x25, - 0xa2,0x08,0x51,0xe0,0x32,0xa0,0x70,0xdb,0x5e,0x93,0xd6,0xb4,0xdf,0x4e,0x07,0x60, - 0x05,0x39,0x4e,0x50,0x27,0x92,0x04,0x57,0x86,0xd6,0x2e,0x48,0x24,0x39,0x98,0x05, - 0x08,0x32,0x6e,0xd1,0x89,0xa2,0x75,0x9a,0x84,0x62,0x8f,0xb4,0x89,0x25,0x90,0x80, - 0xd9,0xd7,0xce,0xc8,0x8e,0xb2,0x2d,0x3f,0x75,0x6f,0x9d,0x09,0x6f,0xb1,0xd6,0x20, - 0x22,0xb0,0xc0,0xb6,0x67,0xc1,0x38,0x33,0x26,0x74,0x5a,0x8f,0x18,0x2a,0x70,0xaf, - 0x56,0x2b,0x57,0x29,0x46,0xe2,0x4a,0x11,0x4a,0x82,0x0c,0xe8,0x8d,0x1b,0xf4,0xb9, - 0xad,0x39,0xfe,0x75,0x23,0xb6,0xa7,0x4e,0x13,0xc6,0x6c,0x37,0x89,0xee,0x08,0xb9, - 0x1c,0xc4,0x24,0xb9,0xa0,0xc4,0x47,0xeb,0xb8,0xb4,0x60,0x17,0x3c,0x31,0x8b,0x98, - 0x89,0xca,0x38,0xb2,0x3c,0x20,0xf8,0x45,0x12,0xaf,0x64,0x5a,0x71,0x28,0xf8,0x14, - 0x26,0x7a,0x41,0xb2,0x7c,0x8a,0xce,0x58,0x34,0xee,0x14,0xb5,0x36,0xc6,0x52,0x6c, - 0x16,0x3a,0x4a,0xd6,0x12,0x3f,0xf6,0x1f,0x6b,0xa5,0x7a,0x3e,0x21,0x88,0x9c,0x6a, - 0x7a,0xab,0xc4,0xca,0x5e,0xb4,0xd6,0x42,0xfb,0x35,0x0d,0x29,0x4f,0xb0,0xc3,0xf5, - 0x9c,0xb9,0x18,0xe0,0xdf,0xbb,0x53,0xa8,0xc5,0x29,0x28,0x50,0x26,0xff,0x04,0xe8, - 0x8e,0xff,0xd6,0x5d,0x43,0xad,0xde,0xd8,0x6e,0xb2,0x4e,0xab,0x24,0x56,0xaf,0x6e, - 0x56,0x4a,0xde,0x89,0xeb,0x39,0xf1,0x5f,0xd2,0x29,0xd0,0x2a,0xa2,0xe8,0x14,0x02, - 0x43,0xb0,0xdd,0x3a,0xe2,0xbc,0x0a,0x71,0x69,0x87,0x76,0xd2,0x26,0x2a,0xc5,0x9c, - 0x5a,0x99,0xa9,0x8a,0xba,0xfe,0x65,0x64,0xa1,0x61,0xe4,0xf0,0x7c,0xbf,0xca,0x5a, - 0xcc,0xe5,0xe2,0x65,0x51,0x44,0x2e,0xd9,0x14,0x6b,0x04,0xb3,0xb1,0xed,0x5f,0xdb, - 0xf1,0xb2,0x2c,0x3f,0xed,0x22,0xc1,0xcf,0x4d,0x19,0x3a,0xf3,0x9d,0x64,0x7d,0x05, - 0x42,0x69,0x73,0x2d,0x0b,0x0d,0xa9,0xed,0x39,0x96,0x9f,0xa7,0xa0,0x0a,0x4f,0x5f, - 0x69,0x1d,0xae,0x52,0x1e,0x98,0x61,0x21,0xb1,0xe7,0x59,0xf4,0x3d,0x3b,0x35,0x76, - 0xe7,0xdb,0x6c,0x71,0x01,0x20,0x33,0xb1,0x94,0xde,0x8b,0x46,0x94,0xbf,0xa2,0x82, - 0x61,0xd3,0x31,0x60,0x93,0xb7,0xac,0x10,0x92,0x63,0x58,0x0d,0x10,0xb2,0x1d,0xef, - 0xc9,0x14,0xb8,0x96,0x47,0xad,0xb4,0xdf,0xf5,0x9b,0xe2,0x0c,0x80,0x6d,0x4a,0x69, - 0xf7,0xc8,0x12,0x9a,0x68,0x42,0xff,0x2e,0xf5,0xf8,0xef,0x3f,0xb1,0x28,0x6d,0x53, - 0xad,0x57,0x18,0xf0,0x73,0xfc,0x09,0xe0,0x01,0x0e,0x83,0x96,0x53,0x81,0xc3,0xbd, - 0xdd,0xeb,0x59,0xb6,0x5a,0x39,0xcb,0x69,0x0b,0x89,0xbf,0xc6,0xe6,0xd3,0x38,0x71, - 0xc2,0x0a,0xc3,0xe5,0x5e,0x99,0x0d,0x29,0xe5,0x91,0x44,0x30,0x7a,0xc8,0xce,0x4a, - 0xcc,0xa4,0x53,0xb5,0x30,0xb4,0x84,0x59,0x23,0x95,0x56,0x42,0x29,0x7e,0x07,0x80, - 0xa4,0x45,0x81,0x05,0xe5,0x8d,0xbd,0x9e,0x54,0x0e,0x52,0x19,0x9f,0xe0,0x4a,0xbf, - 0x90,0x7c,0xfe,0xde,0x68,0x42,0x8e,0x91,0x4a,0x31,0xbd,0x4a,0x85,0xe6,0x2a,0x4f, - 0x9b,0xc9,0x3a,0xb6,0xb6,0x51,0x74,0x85,0x98,0x9d,0xa9,0x65,0xaa,0xfa,0xd1,0xa9, - 0x56,0x8c,0x06,0x99,0xa5,0xfb,0x65,0xeb,0xfa,0x46,0x4e,0x9b,0xc5,0x19,0xd9,0x12, - 0x4a,0x26,0xb8,0x8e,0xb0,0x3e,0x45,0x78,0x48,0x85,0x4d,0x4e,0x75,0xb7,0x55,0x7d, - 0x62,0xf7,0x98,0x44,0x55,0xa3,0x93,0x28,0xd4,0x43,0xa4,0xa4,0x02,0x04,0xe3,0xa0, - 0x18,0x56,0xb5,0xf8,0x15,0xba,0xbe,0x20,0xad,0x1d,0x55,0xc7,0xed,0x64,0x4a,0x4e, - 0x77,0xd5,0x0e,0x87,0xb5,0x6e,0xd6,0x1d,0x45,0x28,0x4a,0x9e,0xed,0xbb,0x73,0xa6, - 0xfa,0x91,0xd6,0x8e,0x35,0x6c,0x02,0xc4,0x3a,0xd7,0x9f,0xe2,0xe1,0xbb,0x33,0xa8, - 0x52,0x0e,0x1e,0x36,0xfe,0xc7,0x95,0x73,0x37,0x8d,0xec,0xb9,0x13,0x6b,0xd1,0x32, - 0x09,0x96,0x19,0x16,0x45,0x41,0x02,0x28,0xd4,0xe8,0xee,0xb5,0x26,0xce,0xa5,0xf1, - 0x00,0xf3,0x00,0x61,0x80,0x8e,0x59,0x97,0x45,0x09,0x21,0x67,0x39,0xc8,0xdb,0x8c, - 0x48,0x88,0xcb,0x2c,0x61,0x6d,0xb6,0x8d,0x5c,0x5d,0x97,0x24,0xb7,0x41,0x6e,0xe3, - 0xad,0x61,0xd9,0xe8,0x14,0x14,0xa1,0xd6,0x3a,0x5c,0x81,0xfa,0x5e,0x4d,0xf5,0xaf, - 0xae,0x2b,0xd9,0x7e,0x05,0x9d,0x86,0x92,0x82,0x33,0x2b,0x1b,0x43,0xc1,0x14,0xd2, - 0x26,0xd6,0x3f,0x1b,0x84,0x7c,0x67,0xa9,0xe2,0xe7,0x33,0x77,0x8e,0x1e,0x11,0xb6, - 0x4f,0xdc,0x2a,0x48,0x9c,0xb2,0x26,0x58,0xa2,0x91,0x6b,0x09,0x3d,0xfb,0x05,0xa3, - 0x10,0x89,0x2e,0x95,0xe7,0x0b,0x80,0xe9,0xf3,0x65,0xb3,0x99,0x4c,0xfb,0xcf,0x27, - 0x2f,0x9c,0x96,0x63,0x0f,0xe0,0x63,0xe2,0xce,0xfb,0xcf,0xf7,0x26,0x2f,0xc6,0xfb, - 0x53,0xfc,0x24,0x7f,0x80,0xdd,0x7d,0x7b,0x6f,0x4a,0x9f,0x97,0xe8,0xfd,0xb0,0xfb, - 0x62,0xdc,0xd9,0x73,0xf0,0x93,0x9c,0x23,0xa6,0xd3,0x17,0xa3,0x17,0x1d,0xfc,0x64, - 0xe7,0x08,0xa7,0x3b,0xea,0xf6,0xda,0xb9,0xf3,0xbe,0xe7,0xad,0x51,0xcb,0x69,0x77, - 0x72,0x33,0x4a,0xa6,0x15,0x07,0x57,0xcf,0x3b,0xad,0xce,0x7e,0xb7,0x53,0x75,0x68, - 0xc5,0x64,0x6b,0x6a,0xcf,0x5d,0xef,0xae,0x9f,0x3b,0xf0,0x3b,0x7b,0xfb,0x01,0x7e, - 0x37,0x4f,0x9d,0xcb,0x85,0x67,0x47,0xc5,0xf3,0x3f,0xfd,0xbd,0x3b,0x72,0x58,0x62, - 0xd2,0xb0,0x9c,0x9e,0x9d,0x08,0xe6,0x49,0x21,0xd2,0xdb,0xdc,0x51,0xe3,0x6e,0x1e, - 0x6d,0xf1,0x9f,0xe6,0xc4,0x8d,0x9c,0x31,0xed,0x43,0x96,0x5e,0x4b,0x18,0xb0,0x21, - 0xaa,0xbf,0xd8,0x07,0xbe,0xa4,0x9a,0x89,0x7b,0x24,0xbd,0xf2,0x59,0x62,0x43,0x10, - 0x49,0x68,0x04,0xdd,0x6f,0x8c,0x25,0xaf,0x45,0xfe,0xbc,0xe3,0x81,0x1d,0x1c,0xf0, - 0xbc,0xa9,0x39,0xf6,0xdc,0x65,0xc1,0xfd,0xa0,0x25,0x56,0xb0,0x39,0x9b,0xac,0xad, - 0x71,0x65,0xe7,0xbb,0x45,0x2b,0x43,0x7e,0xb9,0xda,0xed,0xf6,0x5e,0x7b,0x52,0xbb, - 0xe7,0xe4,0x2a,0x65,0xe3,0xb5,0xf6,0x3b,0x05,0xa6,0x8e,0x88,0x64,0x64,0x43,0xcc, - 0x6b,0xa0,0x32,0x51,0x3d,0xe3,0x63,0xd3,0x72,0xb5,0xa9,0x59,0xed,0xda,0xee,0x76, - 0xbb,0x25,0x33,0x18,0x4e,0xa0,0xd4,0x7b,0x5e,0xd0,0x4c,0x05,0x0c,0xa1,0x14,0x96, - 0xcd,0x85,0xb9,0x41,0x55,0x9c,0x12,0x67,0x18,0x2b,0x28,0xf6,0xf3,0xee,0xa4,0x67, - 0xef,0xda,0xb2,0x6e,0x90,0x19,0x83,0x53,0xb7,0x90,0x3b,0x16,0x49,0x4a,0x6e,0x22, - 0x39,0x79,0x67,0x20,0xfd,0x5c,0xd2,0x62,0x7c,0xa4,0x84,0xf9,0x49,0xb0,0x18,0xcf, - 0x94,0x1e,0x0e,0xd0,0x8b,0x41,0x15,0x3b,0xc3,0xc8,0x69,0x92,0x9f,0x02,0x9e,0xc4, - 0x35,0x47,0x91,0x63,0x5f,0xf5,0xe9,0xdf,0x26,0x26,0x28,0x35,0x35,0x6b,0x3c,0x9f, - 0x88,0x09,0xa1,0x29,0xb1,0x98,0x55,0x32,0x5b,0x1e,0x68,0x7a,0x7e,0x49,0x2f,0x85, - 0x62,0x97,0xd6,0x02,0xcd,0x4d,0x36,0xf8,0xc2,0x71,0x5e,0xec,0xbf,0xc8,0xe5,0xa2, - 0x79,0x27,0x57,0x5f,0x28,0x9c,0x59,0x89,0xf8,0x2e,0x5e,0xd6,0x22,0x0d,0x95,0x00, - 0xcc,0x5d,0x8a,0x1d,0x64,0xed,0xee,0xb2,0xd6,0x84,0x99,0xb6,0x3f,0x9e,0x05,0x51, - 0x85,0xb9,0x59,0x14,0x56,0x0e,0x56,0x32,0x3b,0x8f,0xac,0x1c,0x2f,0x2e,0x2b,0xcc, - 0xc2,0x75,0x66,0x22,0x45,0xd8,0x14,0x02,0xf6,0xe2,0x12,0xd2,0xcc,0x5e,0xef,0x7a, - 0x66,0x94,0x56,0x3a,0x4f,0xf6,0x9c,0x76,0xb7,0x6d,0x57,0x9b,0x91,0x32,0x52,0xa7, - 0x1c,0xf8,0x35,0x49,0xfc,0x45,0xb1,0x23,0xe7,0x35,0xb5,0xbb,0x4b,0xe2,0xe4,0x65, - 0xf5,0xd9,0x46,0x6e,0xc7,0x8f,0x40,0xe4,0x46,0x32,0x96,0x22,0xd8,0xae,0xdc,0xe1, - 0x25,0x84,0x8f,0x2f,0x91,0xc5,0xe5,0xbd,0x53,0x04,0xb3,0xdb,0x6d,0x49,0xf5,0xf6, - 0xf9,0x78,0xea,0x74,0x81,0xf8,0x17,0x50,0x4e,0x54,0xd7,0x16,0xf9,0xf5,0x23,0xe9, - 0xa5,0x68,0x8e,0xa9,0xd2,0x5b,0xb9,0xbe,0xab,0xfa,0xe9,0x0c,0x56,0x9d,0x3a,0x58, - 0xfb,0xbd,0x2a,0x02,0x33,0xd8,0xf8,0x2b,0x8a,0x5a,0x7c,0x59,0x10,0xcd,0x9f,0xb7, - 0x9d,0xce,0xa8,0x6b,0xab,0x6b,0x42,0xb2,0x27,0xb9,0xb1,0xe1,0x61,0xac,0x32,0x4d, - 0x59,0x1f,0x60,0x98,0xdb,0x53,0x9c,0xe8,0xca,0xc4,0xfd,0xd1,0xcb,0x91,0x9d,0x6e, - 0x43,0x5c,0x99,0xbf,0x40,0xad,0xf7,0x2b,0xa9,0xf5,0x1a,0x58,0x26,0xfb,0x0f,0x63, - 0x65,0xc1,0x2b,0xf6,0xf6,0x73,0x2a,0xe5,0xfa,0x15,0x87,0x5a,0xca,0x51,0x5f,0xa6, - 0xea,0xe7,0xa8,0x70,0x9d,0xea,0x4f,0xe7,0x16,0x1b,0x39,0x62,0xac,0x1e,0xb7,0x0f, - 0x40,0x8f,0x75,0x92,0xe6,0x8a,0xd1,0xe4,0x8e,0xcc,0xa9,0xdb,0x74,0x79,0x18,0x97, - 0xd2,0x82,0x7d,0x00,0xec,0xd8,0x99,0x05,0xde,0x24,0xa5,0xdd,0xcf,0x7b,0x2f,0x77, - 0x5f,0xec,0xbd,0x50,0x0a,0xa5,0x46,0xfa,0x5a,0xd2,0x73,0x19,0x2c,0xcb,0xc0,0xef, - 0x48,0xe0,0xaf,0xc9,0x94,0xf6,0x0a,0xeb,0x54,0x86,0x79,0x99,0x49,0x55,0x33,0xa5, - 0xcb,0xa0,0x8a,0x1b,0x21,0x8c,0x56,0xf2,0x23,0xa8,0x56,0x3e,0x8f,0xe8,0x95,0xce, - 0x23,0xb8,0xf0,0x78,0x3a,0x5f,0x3e,0x36,0x31,0x79,0x56,0x95,0x13,0xbd,0x49,0xea, - 0xab,0x12,0x42,0xf3,0x12,0x45,0xa7,0xbd,0xdf,0x9e,0x96,0x11,0x59,0x18,0x29,0xf6, - 0xc4,0xe9,0xa5,0x1c,0x8a,0x66,0xcd,0xf2,0x93,0xe5,0x4e,0xf2,0x62,0xec,0x6e,0x2a, - 0xc5,0x72,0x15,0xcf,0x97,0x4b,0x6e,0xbf,0x1c,0xbd,0x18,0xef,0x0d,0xd6,0x67,0x93, - 0xa9,0x19,0x8a,0xe7,0xc8,0x9d,0xfa,0x66,0x77,0x3c,0x13,0x56,0x3d,0xe4,0x20,0xa8, - 0x31,0xa2,0x71,0xbf,0xd9,0xd6,0x7e,0xd4,0xd4,0x22,0x46,0x61,0x18,0x75,0xb6,0xba, - 0x5a,0x7c,0xa3,0x7a,0x37,0x2b,0x66,0x5c,0x3e,0xa1,0xb7,0x5e,0x66,0xcc,0x90,0xaa, - 0x8f,0x12,0xbf,0xc2,0xc0,0x21,0xe9,0x08,0xcd,0xbd,0x4f,0x00,0xc8,0x2b,0x70,0x6a, - 0x1b,0x42,0x1c,0x7b,0x02,0x7e,0xe7,0x96,0x78,0xd4,0xd9,0xed,0xb6,0x4a,0x32,0xfe, - 0x46,0xa5,0x14,0xd6,0x13,0x56,0x9e,0x1a,0x8c,0xcf,0x46,0x63,0xc1,0x5e,0xcc,0xf5, - 0x32,0xe9,0x8e,0x3a,0xfb,0x05,0xbc,0xef,0x4c,0xf7,0x46,0xbd,0xdd,0xd4,0xa9,0x71, - 0xea,0xb4,0xec,0xdd,0x72,0x53,0x55,0xbb,0xa1,0x7c,0x3c,0x67,0x81,0xac,0xdd,0x4c, - 0xdc,0xf0,0x51,0x57,0x51,0x05,0x8e,0x2f,0x8b,0x2a,0x6e,0xaa,0xc4,0xe6,0x61,0x9f, - 0xb5,0xae,0x5d,0x8d,0x26,0xcb,0xf2,0xd9,0x67,0x95,0x7a,0xc3,0xfa,0x4c,0xa6,0xb4, - 0xd4,0x68,0x81,0x1b,0xf9,0xd5,0xe9,0x29,0x6a,0x60,0x8b,0x6d,0x69,0xaf,0x76,0x84, - 0x4b,0xfd,0xab,0x1d,0x71,0x05,0x00,0xf5,0x0b,0x71,0x21,0xc0,0x89,0xd0,0xe5,0xfe, - 0xfa,0x52,0x63,0x0f,0x7f,0xbd,0xb3,0xa7,0x6b,0x2c,0xf5,0xf0,0x6f,0x74,0xe1,0xff, - 0x29,0xb8,0x1d,0xea,0xe4,0x93,0xd4,0x83,0xff,0xd7,0x35,0x34,0xd6,0x0f,0x75,0x44, - 0x6d,0x5d,0x8b,0x93,0x28,0xb8,0xc2,0x3b,0x03,0xa9,0x15,0x43,0xa6,0x35,0x65,0x8b, - 0x69,0x02,0x92,0xfe,0xb1,0x1d,0x0e,0x75,0x9a,0x05,0x5e,0x05,0x18,0xbb,0xd1,0xd8, - 0x73,0xb4,0x31,0xb4,0xdf,0x86,0x72,0xe3,0x3b,0xfe,0x1b,0x41,0x2d,0xab,0x23,0x3b, - 0x2a,0x37,0x2d,0x3a,0xdf,0x81,0x16,0x42,0x3b,0x99,0x69,0x93,0xa1,0xfe,0xe1,0x85, - 0xf5,0x42,0x83,0xff,0xec,0x3d,0x6d,0x4f,0x6b,0x89,0xff,0xdb,0xb7,0xf6,0x3e,0xb4, - 0xf7,0xac,0x6e,0x2e,0xa3,0x2d,0x32,0x7a,0xd6,0x4b,0x0d,0xfe,0xb3,0xdb,0xe8,0x28, - 0x9d,0x56,0x69,0xf7,0xac,0xce,0x87,0xf6,0x4b,0xab,0x5d,0xc8,0x6b,0x8b,0x3c,0xea, - 0x74,0x07,0x00,0x06,0x7f,0x40,0x24,0xd7,0xc6,0xa0,0x6b,0xc6,0x43,0x9d,0x3c,0x8d, - 0xe9,0x92,0x45,0x5b,0x73,0x61,0x38,0xb3,0x26,0x5e,0xa5,0xd0,0xd3,0x5b,0x0e,0x00, - 0xfa,0xb6,0xa8,0xc1,0xd9,0xf1,0x62,0xa4,0x1f,0x80,0xc8,0xed,0xa3,0x5a,0xe9,0x5f, - 0x6e,0xce,0x48,0x64,0x19,0xbc,0xda,0x81,0x22,0xd8,0x03,0xff,0x21,0xbf,0x0c,0xd1, - 0x05,0xb9,0x9a,0x6a,0x68,0x50,0xd0,0x45,0x1b,0x94,0xa2,0x1f,0xc0,0x70,0xa0,0x18, - 0x2e,0x2b,0xa1,0x7b,0x3a,0x24,0x74,0x7a,0xcd,0x95,0x1f,0x93,0x6e,0x0c,0x9f,0xe4, - 0x9d,0xa7,0x73,0x71,0x5d,0x0b,0x7c,0x40,0xce,0xf1,0x15,0x5e,0x13,0x81,0x9d,0xc3, - 0x0a,0xb4,0xd3,0x30,0xf4,0x0d,0xba,0x91,0x31,0xd4,0x45,0x8a,0xd6,0x6c,0x6a,0xf1, - 0x15,0xa0,0x30,0x79,0xbb,0x6a,0xb6,0x3f,0xd1,0x42,0x3b,0x4e,0x1c,0xcd,0xd6,0x80, - 0xc8,0xe2,0x89,0xd0,0x04,0xef,0x8b,0x4c,0xdd,0x4b,0x7d,0xc3,0x8e,0x5c,0xbb,0x49, - 0x5e,0x8c,0x43,0xfd,0x53,0xe8,0xf8,0x9a,0xec,0xfa,0x60,0xf3,0x32,0x19,0x7c,0x7d, - 0xb5,0xc3,0x7d,0x4b,0x94,0x24,0x24,0x44,0xdf,0x58,0x9c,0x32,0xeb,0xd9,0x34,0xe4, - 0xeb,0xa6,0x17,0xc0,0x5e,0xd3,0xb3,0x29,0xc1,0x64,0xf2,0x80,0x47,0x63,0x38,0xc1, - 0xbd,0x73,0x70,0x34,0x01,0xb1,0x45,0xa3,0x1a,0xd0,0x6c,0x07,0x91,0x43,0x23,0xcc, - 0x1f,0xea,0x25,0xc3,0x54,0xdd,0xae,0x96,0x3a,0x2f,0xec,0x61,0xfd,0xe0,0x0d,0xc2, - 0x43,0x4b,0x66,0x6e,0xac,0xf9,0xc1,0xc4,0xd9,0x8a,0x35,0x9b,0xba,0x90,0xfe,0x8f, - 0x5a,0x23,0x99,0x39,0x5a,0x0c,0x0b,0x0d,0x30,0x74,0xb4,0x45,0x0c,0x10,0x00,0x55, - 0x4a,0x8b,0x9c,0x79,0x00,0x70,0x39,0x7e,0xff,0x8e,0x2b,0x18,0xd6,0xab,0x9d,0x10, - 0x86,0x83,0x26,0x38,0x9a,0x17,0x8d,0xb1,0x89,0x9f,0x85,0xd9,0x4c,0x61,0x35,0x09, - 0x6c,0xd8,0x8e,0x2c,0x17,0xde,0xc0,0x0c,0x4f,0x44,0x9f,0xaf,0x76,0x28,0x1f,0xaa, - 0x91,0xf7,0x86,0x58,0x4a,0x39,0x22,0x5d,0x69,0x1e,0xab,0x91,0x4b,0xf1,0x38,0x98, - 0x87,0x9e,0x93,0x40,0x31,0xa0,0x79,0x78,0x6e,0xd7,0xcc,0x8a,0x63,0x3e,0x49,0x59, - 0x07,0x12,0xe5,0xf2,0x48,0x04,0xdc,0x45,0xa2,0x0b,0x60,0xec,0xdc,0x4d,0xd4,0x1e, - 0x30,0xf3,0xe0,0x0c,0xe4,0x58,0x0d,0x21,0x9e,0x2e,0xa9,0x32,0x1f,0x69,0x5d,0x54, - 0x6b,0x41,0x9a,0x9e,0xf6,0xb6,0x83,0x40,0xc8,0xf0,0x7d,0x47,0xac,0x7e,0x09,0x0f, - 0x6e,0xdc,0x6f,0xb8,0xd0,0x2b,0x10,0x01,0x6d,0x69,0xdc,0xcd,0xd8,0xb7,0x9b,0xf4, - 0x75,0xf0,0xce,0xd7,0x70,0x85,0x7e,0x73,0xdf,0xba,0x5a,0x4c,0xf2,0x36,0x2c,0x5e, - 0x10,0x2e,0xc2,0x43,0xed,0x5d,0x02,0x15,0x83,0xd8,0x89,0x35,0x77,0xaa,0xdd,0x05, - 0x8b,0x48,0x0b,0x67,0xb8,0x88,0xb1,0xe7,0x38,0x61,0x6c,0x6d,0xbc,0xb2,0xb5,0x59, - 0xe4,0x4c,0x87,0xfa,0x73,0x65,0x83,0x40,0xdd,0x4f,0x8b,0xa4,0x61,0x0c,0x40,0x70, - 0x5d,0x44,0xbe,0x36,0xb5,0xbd,0x98,0x68,0x20,0x21,0x59,0x59,0xd7,0xd0,0x0f,0x08, - 0xf9,0xa1,0x57,0xea,0x61,0x14,0x05,0x37,0xb1,0x13,0xbd,0xda,0xb1,0x0f,0xb4,0x24, - 0xd0,0xae,0xa0,0x27,0xd1,0x75,0x14,0x5c,0x46,0x4e,0x1c,0x5b,0x12,0x0e,0xca,0xbc, - 0xe8,0x30,0x01,0x00,0xe6,0xd2,0xdc,0xe2,0x24,0x6c,0xa7,0x50,0x80,0xcd,0x0b,0x80, - 0x74,0x95,0xbc,0x4e,0x31,0xa1,0x5b,0x4c,0xe8,0x89,0x04,0xa5,0x23,0xcc,0xb9,0xf9, - 0xd6,0xae,0xdf,0x58,0x67,0x30,0x04,0x20,0x80,0x9b,0x73,0x50,0xb5,0x82,0x64,0x40, - 0xf0,0xfc,0x5b,0x76,0x98,0xe8,0x1a,0x56,0x77,0xea,0x02,0x75,0x0a,0xef,0xf4,0x83, - 0x63,0x26,0x89,0xd9,0xae,0x43,0x48,0x11,0x90,0x68,0x15,0x7d,0x27,0x01,0xc4,0xbd, - 0x02,0x01,0x45,0x73,0x61,0x05,0x81,0x3a,0x82,0x2c,0x37,0x9e,0xd1,0x32,0x7f,0xf8, - 0x9f,0xe7,0xe7,0x40,0x9c,0x22,0x90,0x98,0x63,0xb1,0xe3,0x8a,0xf8,0x71,0xf0,0x6a, - 0x74,0x70,0x42,0xc4,0x0a,0x68,0xae,0xba,0x57,0x27,0x4e,0xe8,0x05,0x77,0x73,0xd8, - 0x1c,0x87,0x80,0xc9,0x07,0xda,0x39,0x76,0xcf,0x48,0xa7,0x25,0x4e,0x9c,0xc4,0x19, - 0x22,0xb1,0xb9,0x04,0x2a,0x8e,0x82,0x20,0x61,0x0a,0x3d,0xb1,0x13,0xbb,0x49,0x9c, - 0xad,0xdb,0x79,0xb1,0xb7,0xaf,0x1f,0x68,0x0b,0xdf,0x83,0xf5,0xc4,0x81,0x6b,0x80, - 0x23,0x01,0xde,0xb7,0xf3,0x81,0x7a,0x13,0xbd,0x98,0x11,0xa9,0x7c,0x73,0x76,0xd2, - 0xfc,0xf8,0xe9,0x37,0xca,0xf1,0x1d,0x4f,0x10,0x71,0x4b,0x7b,0x37,0xa5,0x52,0xd9, - 0x80,0xd2,0x39,0x13,0x40,0x12,0xcd,0xbe,0xb6,0x5d,0x0f,0xe5,0x19,0xe0,0xd3,0x91, - 0x63,0x22,0xd9,0xd1,0x3e,0x9f,0xfd,0x84,0x33,0x77,0x6d,0x4f,0xb3,0x13,0x0d,0x26, - 0xc9,0x84,0xd8,0x9a,0x03,0xfb,0x01,0x59,0xd4,0xb1,0xdc,0x80,0xa6,0x85,0x44,0x3b, - 0x5a,0xf8,0x58,0x02,0xd5,0x5b,0x84,0xbb,0x15,0xc7,0x20,0xea,0x59,0x96,0x95,0x16, - 0x50,0x33,0x81,0x88,0xc8,0x3c,0x0b,0x80,0xe2,0xf0,0x92,0xa0,0x7b,0x09,0x41,0x64, - 0x0e,0xa5,0x92,0x19,0x5a,0x6c,0x32,0x56,0xc6,0x9d,0x38,0x49,0xe4,0x42,0x19,0x7b, - 0x8a,0x24,0x34,0x9b,0x4c,0x15,0x86,0xa7,0x44,0xef,0xe0,0xa3,0x98,0x29,0xf2,0x4e, - 0xad,0x71,0x76,0xf6,0xee,0xb5,0x91,0xd1,0x3b,0xa5,0x06,0xec,0xa3,0x74,0xd7,0x09, - 0x69,0x57,0x2f,0x50,0x44,0xa6,0x3a,0xb4,0x30,0x57,0x78,0x7d,0x51,0x4c,0x34,0x45, - 0x39,0xfe,0x20,0xf2,0x68,0x87,0x6e,0x02,0xea,0xf8,0x37,0xa8,0x15,0x4c,0xa7,0x92, - 0x66,0x46,0x68,0xf0,0x15,0x29,0x12,0xc7,0x49,0x39,0xd6,0xab,0x88,0x24,0x40,0x7f, - 0x9c,0xb5,0x8d,0x07,0x96,0x0a,0xe5,0x94,0x8c,0x96,0xb8,0x22,0x9a,0xd9,0xa2,0xc0, - 0xc3,0x9d,0x8d,0xc5,0xe8,0x8c,0x53,0x64,0x39,0xb7,0xf0,0x35,0x71,0xa0,0x11,0x41, - 0x58,0x02,0x7f,0x1e,0x20,0x57,0x09,0x6e,0x7c,0xa0,0xa5,0x78,0xb0,0x66,0x01,0xab, - 0xc5,0xbf,0xaf,0x59,0x6c,0x05,0x2e,0x9d,0x51,0xa7,0x00,0x68,0xcd,0x19,0xb4,0xd9, - 0xd8,0x12,0xf3,0xdb,0x32,0x80,0x3c,0x43,0x82,0xca,0x6e,0x11,0xfa,0x2b,0xd7,0xa0, - 0xcc,0x68,0x94,0x62,0xe4,0xde,0xaa,0xd7,0x32,0x9f,0x1c,0xb8,0x89,0xff,0xa8,0x1b, - 0x9c,0x12,0xe6,0xf6,0xad,0xe7,0xf8,0x97,0x28,0x18,0xee,0xf5,0x8a,0xfc,0x09,0x81, - 0x5d,0x07,0x5d,0x2d,0x9e,0x6b,0xec,0x56,0x5b,0x09,0xd6,0x10,0xe9,0xa7,0x02,0xba, - 0x02,0xac,0x73,0x63,0x48,0x21,0x96,0x04,0x97,0x97,0x9e,0x83,0xbb,0x5a,0xce,0xba, - 0x81,0x74,0x07,0xc1,0x06,0xfd,0x14,0xc1,0x96,0x17,0xf8,0x40,0x6f,0xd1,0x0f,0xde, - 0x3b,0xb0,0x13,0xb4,0x91,0x67,0xfb,0x57,0x44,0x4d,0x80,0x16,0xe0,0x2a,0xc8,0x2d, - 0x6b,0x69,0x0a,0x7d,0x90,0xfd,0x37,0xb1,0x2a,0x81,0x39,0x9c,0x45,0x36,0x72,0xa0, - 0xb9,0x7d,0x07,0x54,0x45,0x03,0xa1,0x0a,0x68,0xdd,0x5e,0x97,0x2e,0xe7,0xda,0x63, - 0xd8,0x38,0xf1,0x00,0x84,0xab,0xbd,0x5e,0x33,0x4d,0x00,0x9e,0x71,0xa7,0xcd,0x17, - 0xe8,0x26,0x85,0xdb,0xff,0x16,0x44,0xa7,0xb1,0x3b,0xb7,0x3d,0x4b,0x90,0x0f,0xad, - 0x63,0xf5,0x36,0x61,0x0a,0x7e,0x1c,0x0e,0x7e,0xfe,0xe5,0x9b,0x1c,0x47,0x0c,0x53, - 0xf6,0xee,0xac,0x15,0xab,0x5f,0x26,0x61,0x02,0x1d,0x24,0x99,0xda,0x61,0xe2,0x97, - 0x52,0xab,0x2a,0x29,0x84,0xaf,0x80,0x64,0x68,0xe0,0xc4,0x21,0xf0,0x41,0x4b,0xd4, - 0x81,0xb5,0x77,0x01,0x8d,0xdb,0x84,0x03,0xf0,0xb7,0x8b,0xfb,0xca,0x09,0x29,0x45, - 0x6c,0xb0,0xec,0xbc,0xb8,0xdd,0x69,0xf1,0x9e,0x2e,0x81,0xfc,0x03,0xce,0x7e,0x6e, - 0x27,0x82,0xe8,0x17,0x26,0x0c,0x9a,0x05,0x82,0x09,0x49,0x10,0xec,0x93,0xe8,0x2e, - 0x25,0xb3,0x48,0xb7,0x2c,0x0d,0x77,0x83,0x4f,0xa4,0x1f,0x34,0x0b,0xa6,0xe9,0x5c, - 0x03,0x64,0x3b,0x31,0x4c,0x4b,0xfb,0x1c,0x3b,0x04,0x2f,0xcd,0x96,0x69,0x5a,0x08, - 0x1a,0xa5,0x9b,0x24,0x40,0xb6,0x3d,0xa0,0x17,0x1e,0xc0,0x52,0x3b,0x4a,0x69,0xba, - 0x7d,0x05,0x6b,0xe8,0x4c,0xa7,0xc8,0xb6,0x98,0xde,0x31,0x6f,0x30,0x91,0x4b,0x11, + 0xb2,0x20,0xfc,0x5d,0xbf,0x02,0x86,0x73,0x25,0x22,0x02,0x21,0x2e,0x92,0x2c,0x93, + 0xa6,0x34,0x8a,0x6c,0x27,0xbe,0xf1,0x36,0x92,0x7c,0x92,0x3b,0x8a,0x8f,0x07,0x24, + 0x40,0x11,0x47,0x20,0x80,0x00,0xa0,0x96,0x50,0x9a,0xdf,0xfe,0xd6,0xd2,0x0d,0x34, + 0x36,0x8a,0x4a,0x72,0x9f,0x33,0xef,0x9c,0x7b,0x63,0x11,0xbd,0x77,0x75,0x75,0x6d, + 0x5d,0x5d,0xfd,0xea,0xd9,0xeb,0x4f,0x27,0xe7,0xff,0xf5,0xf9,0x8d,0x36,0x4b,0xe7, + 0xfe,0xe1,0xc6,0x2b,0xfc,0xa3,0xf9,0x76,0x70,0x39,0xd2,0xdd,0x40,0xc7,0x04,0xd7, + 0x76,0xe0,0xcf,0xdc,0x4d,0x6d,0x6d,0x32,0xb3,0xe3,0xc4,0x4d,0x47,0xfa,0x22,0x9d, + 0xb6,0x0f,0x74,0x99,0x1c,0xd8,0x73,0x77,0xa4,0x5f,0x7b,0xee,0x4d,0x14,0xc6,0xa9, + 0xae,0x4d,0xc2,0x20,0x75,0x03,0x28,0x76,0xe3,0x39,0xe9,0x6c,0xe4,0xb8,0xd7,0xde, + 0xc4,0x6d,0xd3,0x87,0xa9,0x79,0x81,0x97,0x7a,0xb6,0xdf,0x4e,0x26,0xb6,0xef,0x8e, + 0xba,0xa6,0x36,0xb7,0x6f,0xbd,0xf9,0x62,0x9e,0x27,0xc8,0x86,0xda,0x53,0x2f,0x1d, + 0x4d,0xc2,0x6b,0x37,0xc6,0x9e,0x52,0x2f,0xf5,0xdd,0xc3,0x0f,0x6e,0x32,0x3b,0x09, + 0x63,0x57,0x3b,0x09,0x83,0xa9,0x77,0xf9,0x6a,0x87,0x93,0x37,0x5e,0x25,0xe9,0x1d, + 0xfe,0x1d,0xc4,0x61,0x98,0x2e,0x37,0xda,0xed,0xf1,0xe5,0xe0,0xf9,0x74,0x77,0xba, + 0x3f,0x3d,0x18,0x6a,0xed,0xf6,0xc4,0x8e,0x1d,0xf8,0x9e,0x4e,0xf1,0xc3,0x0b,0xae, + 0x06,0xcf,0xbb,0x76,0xaf,0xdf,0xef,0xe0,0xe7,0x7c,0x91,0x0e,0x9e,0xef,0xef,0xbf, + 0xe8,0x1f,0xd8,0xf8,0xe9,0x7b,0x81,0x3b,0x78,0xee,0xf6,0xdc,0x17,0xae,0x3b,0x84, + 0x86,0xec,0xc9,0x64,0xf0,0xbc,0x37,0x7e,0xe1,0xb8,0x2f,0x31,0x1b,0x3e,0xb9,0x01, + 0xd1,0x58,0x88,0x6d,0x39,0x2f,0x9d,0x3d,0xfa,0x72,0xe3,0x78,0xf0,0xdc,0xd9,0xdf, + 0xdd,0xdb,0xdd,0xc3,0xcf,0x1b,0x3b,0x0e,0x06,0xcf,0x27,0x07,0x07,0x2f,0xba,0x36, + 0xb6,0x35,0x99,0x79,0x11,0xb4,0xed,0x4e,0x7b,0xd3,0x17,0x3c,0x12,0x1e,0xa7,0x1c, + 0x97,0xe8,0x7c,0x72,0xe0,0xf4,0x1c,0x17,0x93,0x92,0x99,0xed,0x84,0x37,0x83,0x8e, + 0xd6,0x8d,0x6e,0xb5,0x3e,0xfc,0x17,0x5f,0x8e,0xed,0x56,0x77,0xdf,0xec,0x1d,0x98, + 0xbb,0x7b,0xa6,0xd5,0x39,0x30,0x86,0x1b,0x0f,0x1b,0xff,0x63,0xee,0x3a,0x9e,0xad, + 0xb5,0xa2,0xd8,0x9d,0xba,0x71,0xd2,0x9e,0x84,0x7e,0x18,0x03,0x40,0x67,0xee,0xdc, + 0x1d,0x38,0x76,0x7c,0x65,0x2c,0x0b,0x80,0xe9,0x76,0xba,0x7b,0xdd,0x49,0x0e,0x18, + 0x00,0x46,0xb7,0x37,0xce,0x60,0xe3,0xee,0xbb,0xe3,0x69,0x2f,0x83,0xcd,0xc1,0xf8, + 0xe5,0x81,0x3d,0xce,0x61,0xd3,0xb3,0xfb,0xbb,0xbb,0xbd,0x0c,0x36,0xbb,0xf6,0xcb, + 0xdd,0x29,0x41,0x92,0xa7,0xd7,0xeb,0xf7,0x9c,0xbe,0xad,0x4c,0xaf,0xbb,0x0b,0xed, + 0xf7,0x0a,0x33,0xec,0xdb,0xbb,0xfb,0x7b,0xfb,0xcd,0x33,0xec,0x98,0xf8,0x7f,0xd6, + 0x2e,0xce,0xee,0x61,0xe3,0xfb,0xe5,0x38,0xbc,0x6d,0x27,0xde,0x1f,0x5e,0x70,0x39, + 0x18,0x87,0xb1,0xe3,0xc6,0x6d,0x48,0x19,0xce,0xed,0xf8,0xd2,0x0b,0x06,0x9d,0x87, + 0x0d,0xc4,0xda,0x65,0xfb,0xc6,0x1d,0x5f,0x79,0x69,0x3b,0x75,0x6f,0x53,0x2c,0xed, + 0xb6,0x6d,0xe7,0x5f,0x8b,0x24,0x1d,0x74,0x3b,0x9d,0xff,0x78,0xd8,0x18,0x87,0xce, + 0xdd,0x72,0x0a,0xa8,0x39,0xe8,0xee,0x45,0xb7,0x3b,0x5d,0x6b,0x77,0x4f,0x4b,0xee, + 0x92,0xd4,0x9d,0xb7,0x17,0x9e,0xd9,0xb6,0xa3,0xc8,0x77,0xdb,0x9c,0x60,0xea,0x67, + 0xee,0x65,0xe8,0x6a,0x5f,0xde,0xe9,0xe6,0x69,0x38,0x0e,0xd3,0xd0,0x4c,0xec,0x20, + 0x69,0x27,0x6e,0xec,0x4d,0x87,0x63,0x7b,0x72,0x75,0x19,0x87,0x8b,0xc0,0x19,0x5c, + 0xdb,0x71,0x0b,0x41,0x6a,0x0c,0x09,0xe4,0xe2,0x1b,0x80,0x68,0x0c,0x23,0xdb,0x71, + 0x60,0xbc,0x30,0xd0,0x34,0x0d,0xe7,0x83,0x97,0x9d,0xe8,0x76,0x88,0xb8,0x3c,0xf5, + 0xc3,0x9b,0xf6,0xed,0x60,0xe6,0x39,0x8e,0x1b,0xc0,0xc8,0xbb,0x34,0x26,0x1a,0xef, + 0xa0,0xfb,0x02,0x0a,0xd1,0xe7,0x8d,0xeb,0x5d,0xce,0xd2,0xc1,0xfe,0x1e,0x4e,0xae, + 0xa7,0x16,0xd9,0xad,0x16,0x19,0xd2,0x8c,0xd3,0x18,0x86,0x38,0x0d,0xe3,0xf9,0x60, + 0x11,0x45,0x6e,0x3c,0xb1,0x13,0x77,0xe8,0xbb,0x69,0x0a,0xc0,0x4a,0x22,0x7b,0x82, + 0xb0,0xb3,0x3a,0x7b,0xee,0xbc,0x30,0x54,0x58,0x60,0x43,0xc2,0xb1,0xd7,0x03,0xf0, + 0xc3,0x42,0xc0,0x48,0xb1,0xd3,0xc1,0xd4,0x8b,0x93,0x14,0x17,0xd5,0x77,0x96,0x5c, + 0xa4,0x9d,0x86,0x11,0x82,0xdb,0x5e,0xaa,0x6d,0x00,0x16,0x18,0x50,0x01,0xe8,0x84, + 0x1b,0x2f,0x1d,0x2f,0x89,0x7c,0xfb,0x6e,0x30,0xf5,0xdd,0xdb,0xa1,0xed,0x7b,0x97, + 0x41,0xdb,0x03,0x88,0x26,0x83,0x09,0x50,0x04,0x37,0x1e,0x5e,0xda,0xd1,0x00,0x7b, + 0x90,0xf0,0x19,0x74,0xb1,0xd7,0xee,0x3e,0xa4,0x54,0xe0,0x8a,0xc8,0x69,0x0c,0xb3, + 0x05,0x27,0x38,0x22,0x9a,0x24,0xa1,0xef,0x39,0x1a,0x97,0x41,0x7c,0x02,0x60,0x87, + 0x09,0x50,0x95,0x30,0x18,0x24,0xa9,0x37,0xb9,0xba,0x1b,0xd2,0x38,0x87,0x7f,0xc0, + 0x4a,0x38,0xee,0x2d,0xf4,0x27,0x87,0xa7,0x25,0xd7,0x97,0x4b,0x1c,0xda,0x20,0x08, + 0x03,0xf7,0x61,0xc3,0x9a,0x21,0x01,0x5b,0xce,0x61,0x6a,0x44,0x9e,0x70,0x72,0x9c, + 0xa6,0x39,0xde,0xb5,0x0a,0x76,0x18,0x65,0x15,0x70,0x37,0x33,0x98,0x1b,0x41,0xd7, + 0x85,0x06,0x6f,0x62,0x3b,0xca,0x96,0x58,0x2c,0x30,0x2f,0x4d,0x96,0xe8,0xfa,0xbe, + 0x17,0x25,0x5e,0x02,0xbd,0x8c,0x6d,0xe7,0xd2,0x95,0x70,0xf5,0xdd,0x69,0x3a,0xb0, + 0x17,0x69,0x38,0xcc,0x06,0x37,0x54,0x3a,0xef,0xd6,0xac,0xb9,0x84,0x1f,0xee,0x99, + 0x97,0x08,0x3d,0x06,0x53,0x6c,0x3b,0xde,0x22,0x19,0xbc,0x7c,0x59,0x0b,0x50,0xd8, + 0xa0,0x46,0x65,0x1a,0x72,0x30,0x16,0x90,0xf6,0x45,0xb4,0x54,0x6a,0x3d,0x9f,0xf6, + 0xdd,0x03,0xa7,0x2f,0x6a,0x3c,0x3f,0xb0,0xf7,0x26,0x1d,0x82,0x90,0x07,0x24,0x3e, + 0x87,0xe3,0x50,0x9d,0xc5,0x81,0xb2,0xb6,0x38,0xb6,0x83,0x6c,0x6c,0x95,0xb5,0x13, + 0xe4,0xc0,0x28,0x8d,0x1d,0x37,0xc1,0x46,0x65,0xec,0x44,0x4c,0xaa,0x83,0x1f,0x4e, + 0x16,0x71,0x02,0x29,0x51,0xe8,0x11,0x7e,0x61,0x83,0xed,0x19,0x83,0xa9,0x6b,0xf5, + 0x87,0x1b,0xb4,0xe3,0x5f,0x74,0x00,0xaf,0x7b,0xb4,0xeb,0xfb,0xda,0xc2,0x6b,0xcf, + 0xc3,0x20,0xa4,0x65,0x33,0x3f,0xb8,0x81,0x1f,0x9a,0xc0,0x4d,0x60,0x60,0x76,0x62, + 0x66,0x19,0x72,0x96,0x83,0x19,0x2e,0x5e,0x05,0xdf,0xe5,0x90,0xab,0xfb,0x60,0x0d, + 0x5a,0xdc,0x08,0xee,0xbe,0xdd,0x9b,0x76,0x77,0x25,0xb8,0xdd,0xce,0x78,0x77,0x6f, + 0x02,0xf4,0x6f,0x6e,0x7b,0x01,0x60,0xca,0xad,0xc0,0xd1,0xfd,0x5d,0xdc,0x3f,0x92, + 0xf8,0x69,0x84,0x36,0xd9,0x6e,0xda,0xc7,0xcd,0x6b,0xe1,0xce,0x59,0xae,0xdc,0x4f, + 0x0d,0x1b,0xa9,0xb8,0x12,0x84,0xf5,0x6a,0xd3,0x43,0x22,0xc4,0x4c,0xb2,0xb9,0x1a, + 0x7f,0x48,0x1a,0x92,0xed,0xd2,0x5d,0x1a,0x46,0x6a,0x8f,0x93,0x22,0x45,0xc0,0xed, + 0xbf,0xdb,0x8c,0x9a,0xb2,0xaf,0xdd,0x0a,0x42,0x77,0xf3,0x39,0xd7,0x74,0xa2,0x8d, + 0x17,0x90,0x24,0x50,0xb2,0x2b,0xa7,0xd8,0x51,0xbb,0x21,0x44,0xad,0x60,0x0f,0x61, + 0x87,0x17,0xcc,0x80,0xb0,0xa7,0xea,0x8e,0xeb,0x5b,0x7b,0xe5,0x3d,0xd7,0xc9,0xf7, + 0x1c,0x60,0xa8,0x56,0x1d,0x22,0xe2,0x6d,0x11,0x1b,0x8b,0xa3,0xb3,0x60,0x80,0x0d, + 0x6b,0x52,0xe1,0x1e,0x4d,0x70,0x86,0x16,0xa7,0xcb,0x12,0x18,0xfa,0x04,0x86,0x29, + 0x48,0x6d,0x63,0xd7,0xcf,0xc0,0x3d,0xf6,0xc3,0xc9,0x95,0x3a,0xa5,0x5e,0xed,0x94, + 0x8a,0x6d,0xed,0x8a,0xa6,0x00,0xf7,0x83,0x54,0x25,0x7f,0x5d,0xaa,0xdc,0xc0,0x39, + 0x88,0x2d,0xd0,0x28,0xbc,0x20,0x5a,0xa4,0x17,0xe9,0x5d,0xe4,0x8e,0x90,0xf0,0x7d, + 0x35,0x95,0x84,0xc8,0x4e,0x92,0x1b,0x00,0x58,0x21,0x31,0x58,0xcc,0xc7,0x6e,0x5c, + 0x48,0x72,0x01,0xdd,0xfd,0xaf,0x66,0xe2,0xfa,0xee,0x04,0x24,0x16,0xc6,0x79,0x64, + 0xe1,0x19,0xf8,0x0f,0x90,0x63,0x74,0xc4,0x64,0xea,0x56,0x6f,0xbf,0x34,0x56,0x06, + 0x69,0x03,0x45,0xd9,0x78,0x1a,0x75,0x42,0x7a,0x16,0x2e,0x52,0x92,0x63,0x88,0x89, + 0x68,0xda,0xce,0xf7,0xda,0xe1,0x08,0x3b,0x1d,0x68,0x09,0x80,0x22,0xd1,0xbc,0x4f, + 0x67,0xda,0x1f,0x61,0x38,0x6f,0x87,0x41,0x7b,0x1a,0x4e,0x16,0x89,0xd6,0x4a,0x3c, + 0xc7,0xbd,0xb1,0xef,0x40,0x86,0x98,0xc4,0xa1,0xef,0x83,0x18,0xac,0x4d,0xec,0x28, + 0xf5,0xae,0x5d,0x2d,0x99,0xb9,0x6e,0x6a,0x68,0xdf,0xef,0x30,0xf8,0x06,0x54,0x43, + 0xcc,0x9f,0x3f,0x96,0x0d,0xd4,0x46,0x45,0x93,0x8e,0x86,0xff,0x87,0xcc,0x94,0x29, + 0xce,0xdc,0xbb,0x6d,0x41,0x27,0x09,0xc8,0x53,0x66,0x5e,0x43,0xeb,0xed,0xfd,0x87, + 0x49,0x92,0x42,0x64,0xc7,0xc0,0x91,0x0d,0xb1,0x66,0x96,0xe3,0xc5,0xe9,0x9d,0xe8, + 0x94,0x3f,0xea,0x3a,0x45,0x81,0x16,0x71,0x30,0xba,0xba,0xcc,0x10,0xed,0x32,0xf6, + 0x9c,0x21,0xfe,0x03,0x82,0xd7,0x1c,0x52,0x80,0x23,0x42,0x95,0xc5,0x3c,0x48,0x06, + 0xb1,0x1b,0xb9,0x76,0xda,0x42,0x0a,0x05,0xc2,0xbc,0xef,0x9b,0xc0,0x68,0x81,0x8e, + 0xb5,0xba,0x28,0x6a,0x98,0xdd,0x69,0x6c,0x18,0x44,0x11,0x7a,0x82,0x4f,0xfc,0x89, + 0xa5,0x50,0x70,0xa2,0x69,0x85,0x11,0xa3,0x79,0x4a,0x1a,0x0d,0x7c,0xe5,0xbc,0xd6, + 0x12,0x60,0xf6,0xe5,0x46,0x6a,0xda,0x59,0xbb,0xd9,0xce,0x02,0x22,0xb4,0x81,0xe2, + 0x85,0x60,0x49,0xbd,0xfd,0x3a,0x22,0x11,0x5d,0x69,0xb4,0x0a,0x4b,0x81,0xec,0xd8, + 0x9c,0xe4,0x61,0x7b,0x0a,0xad,0x1f,0xaa,0xa2,0x0b,0x54,0x82,0x45,0x0c,0x96,0xeb, + 0x49,0x1c,0x35,0xb2,0x0a,0xb5,0x61,0xaf,0x2f,0xb1,0x29,0x9b,0x7d,0xaf,0x08,0x00, + 0xa2,0x0e,0xd0,0x9c,0x1f,0x5c,0x2d,0xcb,0x24,0x57,0x2c,0x29,0xfd,0x96,0x8b,0xd5, + 0x69,0xdc,0xb9,0x55,0x3a,0x43,0x78,0xbe,0x51,0xe2,0xf2,0x34,0x47,0xc7,0x9d,0x84, + 0xb1,0x4d,0x62,0x1f,0xf4,0xe6,0xc6,0x88,0x22,0x38,0xa7,0x69,0xb2,0x98,0x2f,0x9b, + 0x48,0x55,0x26,0x69,0x41,0xc9,0x38,0xbc,0xa9,0x72,0x27,0x12,0x7f,0x31,0xeb,0x10, + 0x28,0xad,0xe0,0x27,0x45,0xf9,0x30,0xba,0xa9,0x54,0x54,0xc1,0x96,0xa4,0xb1,0x9b, + 0x4e,0x66,0xd4,0xd8,0x01,0x81,0x85,0x2a,0x88,0x15,0x6e,0x6e,0x11,0x90,0xf3,0x26, + 0x99,0x41,0xcb,0x79,0xde,0x7e,0x8f,0xea,0x27,0x37,0x8f,0x2e,0x12,0xea,0x39,0xde, + 0xf4,0xae,0x2d,0x54,0xef,0x01,0xad,0x73,0x7b,0xec,0xa6,0x37,0x2e,0xa0,0x44,0x45, + 0xe8,0x7e,0x89,0x92,0x3e,0xb5,0x4c,0x38,0xa4,0x8d,0x9b,0xd9,0x46,0x2d,0x27,0x54, + 0xaa,0x7a,0x82,0x4d,0xa0,0xfe,0x0d,0xab,0x1c,0xcf,0x6d,0x7f,0xf8,0x28,0xe3,0x40, + 0xc6,0x78,0xe9,0x2f,0x33,0xb1,0x3d,0x76,0x81,0x6e,0x00,0x2d,0x1c,0xf2,0xbc,0x77, + 0x7b,0xf9,0x06,0xe8,0x91,0xc2,0xa3,0xe0,0x3d,0x54,0x14,0xb0,0xcc,0xaa,0x03,0x8f, + 0x05,0x8a,0x93,0xba,0xc3,0x10,0x15,0x9d,0xf4,0x0e,0x10,0x4c,0x61,0x1b,0x72,0x27, + 0xe1,0xef,0x6c,0x27,0x55,0x19,0x35,0x34,0xbb,0xa8,0x69,0xd2,0x0b,0x40,0x4e,0x2b, + 0x8a,0x12,0x2b,0x89,0x12,0x49,0xde,0x44,0x61,0xb9,0x21,0xab,0xbb,0x97,0x0c,0x45, + 0x37,0x6d,0xf7,0x1a,0x16,0x27,0x51,0x67,0xb2,0x18,0x8c,0x5d,0x50,0xda,0xdc,0xa5, + 0x5c,0x39,0x5d,0x1f,0x56,0x07,0x21,0x18,0xec,0x90,0xb0,0x17,0x7f,0x88,0xe9,0x1d, + 0x28,0x84,0xa2,0x44,0x01,0xc9,0xaa,0x50,0x1c,0xda,0x1e,0x00,0xa0,0x34,0x32,0x15, + 0x9e,0x03,0x90,0x51,0x27,0x57,0xae,0xb3,0xbd,0xa8,0x8a,0x29,0x2c,0xdb,0xd6,0x95, + 0x95,0xe3,0xa7,0xa1,0xf5,0xba,0x88,0xb0,0x42,0xdc,0x19,0xa7,0x41,0x86,0x56,0x5e, + 0x40,0x82,0xf9,0xba,0xe8,0x5b,0xa2,0xb5,0x99,0x3c,0xd7,0x44,0x36,0xea,0x94,0xe2, + 0x0d,0x15,0xd9,0xbb,0xfb,0x55,0x15,0xa9,0x42,0x89,0x87,0xb5,0xd3,0x2e,0x53,0x23, + 0x92,0x26,0xd4,0x49,0x82,0x20,0x3f,0x59,0xae,0xa1,0x6b,0x95,0xeb,0x0d,0x00,0x38, + 0xf6,0xd8,0x77,0x9d,0xa5,0x44,0x5b,0x6b,0x4f,0x8e,0xc8,0x71,0xa7,0xf6,0xc2,0x4f, + 0x8b,0xdd,0xcc,0x97,0x15,0xa6,0x23,0xe7,0xb8,0x2f,0x44,0x22,0x94,0xfd,0xa1,0xe3, + 0x32,0xdc,0x2b,0xbb,0x7a,0x95,0x46,0xd9,0x2b,0x68,0x6d,0x05,0xbc,0x56,0x89,0x28, + 0x42,0x14,0xb8,0x0c,0x28,0xdc,0xb6,0xdf,0xa6,0x35,0x1d,0x74,0xb3,0x01,0x58,0x61, + 0x81,0x13,0x34,0x89,0x24,0xe1,0x95,0xa1,0x75,0x4b,0x12,0x49,0x01,0x66,0x21,0x82, + 0x8c,0x5b,0x74,0xe3,0x78,0x9d,0x26,0xa1,0xd8,0x23,0x6d,0x62,0x09,0x24,0x60,0xf6, + 0xb5,0x3b,0xb6,0xe3,0x7c,0xcb,0x4f,0xbd,0x5b,0xd7,0xe1,0x2d,0xd6,0x19,0xc6,0x04, + 0x16,0xd8,0xf6,0x2c,0x18,0xe7,0xc6,0x84,0x5e,0xe7,0x11,0x43,0x05,0xee,0xd5,0x7a, + 0xe5,0x2a,0xc3,0x48,0x5c,0x29,0x42,0x49,0x90,0x01,0xfd,0x49,0x8b,0x3e,0xb7,0x35, + 0x37,0xb8,0x6e,0x25,0xf6,0xd4,0x6d,0xc3,0x98,0xed,0x36,0xd1,0x1d,0x21,0x97,0x83, + 0x98,0x24,0x17,0x94,0xf8,0x68,0x13,0x97,0x16,0xec,0x82,0x27,0x66,0x11,0x33,0x51, + 0x19,0x47,0x9e,0x07,0x04,0xbf,0x4c,0xe2,0x95,0x4c,0x2b,0x89,0x04,0x9f,0xc2,0x44, + 0x3f,0x4c,0x97,0x4f,0xd1,0x19,0xcb,0xc6,0x9d,0xb2,0xd6,0xc6,0x58,0x8a,0xcd,0x42, + 0x47,0xe9,0x5a,0xe2,0xc7,0xc1,0x63,0xad,0xd4,0xcf,0x27,0x02,0x91,0x53,0x4d,0xef, + 0x54,0x58,0xd9,0x8b,0xce,0x5a,0x68,0xbf,0xa6,0x21,0xe5,0x09,0x76,0xb8,0x5d,0x77, + 0x2e,0x06,0xf8,0xf7,0xee,0x14,0x6a,0x71,0x0a,0x0a,0x94,0xc9,0x3f,0x01,0xba,0x93, + 0xbf,0x75,0xd7,0x50,0xab,0x37,0xb6,0x97,0xae,0xd3,0x2a,0x89,0xd5,0xab,0x9b,0x95, + 0x92,0x77,0xea,0xf9,0x6e,0xf2,0x97,0x74,0x0a,0xb4,0x8a,0x28,0x3a,0x85,0xc0,0x10, + 0x6c,0xb7,0x89,0x38,0xaf,0x42,0x5c,0xda,0xa1,0xbd,0xac,0x89,0x5a,0x31,0xa7,0x51, + 0x66,0xaa,0xa3,0xae,0x7f,0x19,0x59,0x68,0x18,0x05,0x3c,0x3f,0xa8,0xb3,0x16,0x73, + 0xb9,0x64,0x59,0x16,0x91,0x2b,0x36,0xc5,0x06,0xc1,0x6c,0x62,0x07,0xd7,0x76,0xb2, + 0xac,0xca,0x4f,0x7b,0x48,0xf0,0x0b,0x53,0x86,0xce,0x02,0x37,0x5d,0x5f,0x81,0x50, + 0xda,0x5c,0xcb,0x42,0x43,0x6a,0x7b,0x81,0xe5,0x17,0x29,0xa8,0xc2,0xd3,0x57,0x5a, + 0x87,0xeb,0x94,0x07,0x66,0x58,0x48,0xec,0x79,0x16,0x03,0xdf,0xce,0x8c,0xdd,0xc5, + 0x36,0x3b,0x5c,0x00,0xc8,0x4c,0x22,0xa5,0xf7,0xb2,0x11,0xe5,0xaf,0xa8,0x60,0xd8, + 0x74,0x02,0xd8,0xe4,0x2f,0x6b,0x84,0xe4,0x04,0x56,0x03,0x84,0x6c,0xd7,0x7f,0x32, + 0x05,0x6e,0xe4,0x51,0x2b,0xed,0x77,0x83,0xb6,0x38,0x03,0x60,0x9b,0x52,0xd6,0x3d, + 0xb2,0x84,0x36,0x9a,0xd0,0xff,0x94,0x7a,0xfc,0xf7,0x9f,0x58,0x54,0xb6,0xa9,0xb6, + 0x5b,0x1a,0xf0,0x73,0xfc,0x09,0xe0,0x01,0x0e,0x83,0x96,0x53,0x81,0xc3,0xbb,0x7b, + 0xd7,0xb3,0x7c,0xb5,0x0a,0x96,0xd3,0x0e,0x12,0x7f,0x8d,0xcd,0xa7,0x49,0xea,0x46, + 0x35,0x86,0xcb,0xfd,0x2a,0x1b,0x52,0xca,0x23,0x89,0x60,0xf4,0x90,0x9d,0x55,0x98, + 0x49,0xaf,0x6e,0x61,0x68,0x09,0xf3,0x46,0x6a,0xad,0x84,0x52,0xfc,0x0e,0x01,0x49, + 0xcb,0x02,0x0b,0xca,0x1b,0xfb,0xbb,0x52,0x39,0xc8,0x64,0x7c,0x82,0x2b,0xfd,0x42, + 0xf2,0xf9,0x6b,0xab,0x0d,0x39,0x46,0x26,0xc5,0xec,0xd6,0x2a,0x34,0x57,0x45,0xda, + 0x4c,0xd6,0xb1,0xb5,0x8d,0xa2,0x2b,0xc4,0xec,0x5c,0x2d,0x53,0xd5,0x8f,0x5e,0xbd, + 0x62,0x34,0xcc,0x2d,0xdd,0x2f,0x3b,0xd7,0x37,0x72,0xda,0x2c,0xce,0xc8,0x96,0x50, + 0x32,0xc1,0x75,0x84,0xf5,0x29,0xc3,0x43,0x2a,0x6c,0x72,0xaa,0x7b,0x9d,0xfa,0x13, + 0xbb,0xc7,0x24,0xaa,0x06,0x9d,0x44,0xa1,0x1e,0x22,0x25,0x13,0x20,0x18,0x07,0xc5, + 0xb0,0xea,0xc5,0xaf,0xc8,0x0b,0x04,0x69,0xed,0xa9,0x3a,0x6e,0x2f,0x57,0x72,0xfa, + 0xab,0x76,0x38,0xac,0x75,0xbb,0xe9,0x28,0x42,0x51,0xf2,0xec,0xc0,0x9b,0x33,0xd5, + 0x8f,0xb5,0x6e,0xa2,0x61,0x13,0x20,0xd6,0x79,0xc1,0x14,0x0f,0xdf,0xdd,0x61,0x9d, + 0x72,0xf0,0xb0,0xf1,0x3f,0xae,0xdc,0xbb,0x69,0x6c,0xcf,0xdd,0x44,0x8b,0x97,0x69, + 0xb8,0xcc,0xb1,0x28,0x0e,0x53,0x40,0xa1,0x56,0x7f,0xbf,0xe3,0xb8,0x97,0xc6,0x03, + 0xcc,0x03,0x84,0x01,0x3a,0x66,0x5d,0x96,0x25,0x84,0x82,0xe5,0xa0,0x68,0x33,0x22, + 0x21,0x2e,0xb7,0x84,0x75,0xd9,0x36,0x72,0x75,0x5d,0x91,0xdc,0x86,0x85,0x8d,0xb7, + 0x86,0x65,0xa3,0x57,0x52,0x84,0x3a,0xeb,0x70,0x05,0xea,0x7b,0x35,0xd5,0xbf,0xba, + 0xae,0x65,0xfb,0x35,0x74,0x1a,0x4a,0x0a,0xce,0xac,0x6c,0x0c,0x05,0x53,0x48,0x9b, + 0x58,0xff,0x6c,0x10,0xf2,0xdd,0xa5,0x8a,0x9f,0xcf,0xbc,0x39,0x7a,0x44,0xd8,0x01, + 0x71,0xab,0x30,0x75,0xab,0x9a,0x60,0x85,0x46,0xae,0x25,0xf4,0x1c,0x94,0x8c,0x42, + 0x24,0xba,0xd4,0x9e,0x2f,0x00,0xa6,0xcf,0x97,0xed,0x76,0x3a,0x1d,0x3c,0x77,0x5e, + 0xb8,0x1d,0xd7,0x1e,0xc2,0x87,0xe3,0xcd,0x07,0xcf,0xf7,0x9d,0x17,0x93,0x83,0x29, + 0x7e,0x92,0x3f,0xc0,0xde,0x81,0xbd,0x3f,0xa5,0xcf,0x4b,0xf4,0x7e,0xd8,0x7b,0x31, + 0xe9,0xed,0xbb,0xf8,0x49,0xce,0x11,0xd3,0xe9,0x8b,0xf1,0x8b,0x1e,0x7e,0xb2,0x73, + 0x84,0xdb,0x1f,0xf7,0x77,0xbb,0x85,0xf3,0xbe,0xe7,0x9d,0x71,0xc7,0xed,0xf6,0x0a, + 0x33,0x4a,0xa7,0x35,0x07,0x57,0xcf,0x7b,0x9d,0xde,0x41,0xbf,0x57,0x77,0x68,0xc5, + 0x64,0x6b,0x6a,0xcf,0x3d,0xff,0x6e,0x50,0x38,0xf0,0x3b,0x7b,0xfb,0x01,0x7e,0xb7, + 0x4f,0xdd,0xcb,0x85,0x6f,0xc7,0xe5,0xf3,0x3f,0xfd,0xbd,0x37,0x76,0x59,0x62,0xd2, + 0xb0,0x9c,0x9e,0x9f,0x08,0x16,0x49,0x21,0xd2,0xdb,0xc2,0x51,0xe3,0x5e,0x11,0x6d, + 0xf1,0x9f,0xb6,0xe3,0xc5,0xee,0x84,0xf6,0x21,0x4b,0xaf,0x15,0x0c,0xd8,0x10,0xd5, + 0x5f,0x1c,0x00,0x5f,0x52,0xcd,0xc4,0xbb,0x24,0xbd,0xf2,0x59,0x62,0x4b,0x10,0x49, + 0x68,0x04,0xdd,0x6f,0x8c,0x25,0xaf,0x45,0xf1,0xbc,0xe3,0x81,0x1d,0x1c,0xf0,0xbc, + 0xa9,0x3d,0xf1,0xbd,0x65,0xc9,0xfd,0xa0,0x23,0x56,0xb0,0x3d,0x73,0xd6,0xd6,0xb8, + 0xf2,0xf3,0xdd,0xb2,0x95,0xa1,0xb8,0x5c,0xdd,0x6e,0x77,0xbf,0xeb,0x34,0xee,0x39, + 0xb9,0x4a,0xf9,0x78,0xad,0x83,0x5e,0x89,0xa9,0x23,0x22,0x19,0xf9,0x10,0x8b,0x1a, + 0xa8,0x4c,0x54,0xcf,0xf8,0xd8,0xb4,0x5c,0x6f,0x6a,0x56,0xbb,0xb6,0xfb,0xfd,0x7e, + 0xc5,0x0c,0x86,0x13,0xa8,0xf4,0x5e,0x14,0x34,0x33,0x01,0x43,0x28,0x85,0x55,0x73, + 0x61,0x61,0x50,0x35,0xa7,0xc4,0x39,0xc6,0x0a,0x8a,0xfd,0xbc,0xef,0xec,0xda,0x7b, + 0xb6,0xac,0x1b,0xe6,0xc6,0xe0,0xcc,0x2d,0xe4,0x8e,0x45,0x92,0x8a,0x9b,0x48,0x41, + 0xde,0x19,0x4a,0x3f,0x97,0xac,0x18,0x1f,0x29,0x61,0x7e,0x1a,0x2e,0x26,0x33,0xa5, + 0x87,0x43,0xf4,0x62,0x50,0xc5,0xce,0x28,0x76,0xdb,0xe4,0xa7,0x80,0x27,0x71,0xed, + 0x71,0xec,0xda,0x57,0x03,0xfa,0xb7,0x8d,0x09,0x4a,0x4d,0xcd,0x9a,0xcc,0x1d,0x31, + 0x21,0x34,0x25,0x96,0xb3,0x2a,0x66,0xcb,0x43,0x4d,0x2f,0x2e,0xe9,0xa5,0x50,0xec, + 0xb2,0x5a,0xa0,0xb9,0xc9,0x06,0x5f,0xb8,0xee,0x8b,0x83,0x17,0x85,0x5c,0x34,0xef, + 0x14,0xea,0x0b,0x85,0x33,0x2f,0x91,0xdc,0x25,0xcb,0x46,0xa4,0xa1,0x12,0x80,0xb9, + 0x4b,0xb1,0x83,0xac,0xbd,0x3d,0xd6,0x9a,0x30,0xd3,0x0e,0x26,0xb3,0x30,0xae,0x31, + 0x37,0x8b,0xc2,0xca,0xc1,0x4a,0x6e,0xe7,0x91,0x95,0x93,0xc5,0x65,0x8d,0x59,0xb8, + 0xc9,0x4c,0xa4,0x08,0x9b,0x42,0xc0,0x5e,0x5c,0x42,0x9a,0xb9,0xbb,0x7b,0x3d,0x33, + 0x2a,0x2b,0x5d,0x24,0x7b,0x6e,0xb7,0xdf,0xb5,0xeb,0xcd,0x48,0x39,0xa9,0x53,0x0e, + 0xfc,0xda,0x24,0xfe,0xa2,0xd8,0x51,0xf0,0x9a,0xda,0xdb,0x23,0x71,0xf2,0xb2,0xfe, + 0x6c,0xa3,0xb0,0xe3,0xc7,0x20,0x72,0x23,0x19,0xcb,0x10,0x6c,0x4f,0xee,0xf0,0x0a, + 0xc2,0x27,0x97,0xc8,0xe2,0x8a,0xde,0x29,0x82,0xd9,0xed,0x75,0xa4,0x7a,0xfb,0x7c, + 0x32,0x75,0xfb,0x40,0xfc,0x4b,0x28,0x27,0xaa,0x6b,0x8b,0xe2,0xfa,0x91,0xf4,0x52, + 0x36,0xc7,0xd4,0xe9,0xad,0x5c,0xdf,0x53,0xfd,0x74,0x86,0xab,0x4e,0x1d,0xac,0x83, + 0xdd,0x3a,0x02,0x33,0xdc,0xf8,0x2b,0x8a,0x5a,0x72,0x59,0x12,0xcd,0x9f,0x77,0xdd, + 0xde,0xb8,0x6f,0xab,0x6b,0x42,0xb2,0x27,0xb9,0xb1,0xe1,0x61,0xac,0x32,0x4d,0x59, + 0x1f,0x60,0x58,0xd8,0x53,0x9c,0xe8,0xc9,0xc4,0x83,0xf1,0xcb,0xb1,0x9d,0x6d,0x43, + 0x5c,0x99,0xbf,0x40,0xad,0x0f,0x6a,0xa9,0xf5,0x1a,0x58,0x26,0xfb,0x8f,0x12,0x65, + 0xc1,0x6b,0xf6,0xf6,0x73,0x2a,0xe5,0x05,0x35,0x87,0x5a,0xca,0x51,0x5f,0xae,0xea, + 0x17,0xa8,0x70,0x93,0xea,0x4f,0xe7,0x16,0x1b,0x05,0x62,0xac,0x1e,0xb7,0x0f,0x41, + 0x8f,0x75,0xd3,0xf6,0x8a,0xd1,0x14,0x8e,0xcc,0xa9,0xdb,0x6c,0x79,0x18,0x97,0xb2, + 0x82,0x03,0x00,0xec,0xc4,0x9d,0x85,0xbe,0x93,0xd1,0xee,0xe7,0xbb,0x2f,0xf7,0x5e, + 0xec,0xbf,0x50,0x0a,0x65,0x46,0xfa,0x46,0xd2,0x73,0x19,0x2e,0xab,0xc0,0xef,0x49, + 0xe0,0xaf,0xc9,0x94,0xf6,0x4b,0xeb,0x54,0x85,0x79,0x95,0x49,0xd5,0x33,0xa5,0xcb, + 0xb0,0x8e,0x1b,0x21,0x8c,0x56,0xf2,0x23,0xa8,0x56,0x3d,0x8f,0xd8,0xad,0x9c,0x47, + 0x70,0xe1,0xc9,0x74,0xbe,0x7c,0x6c,0x62,0xf2,0xac,0xaa,0x20,0x7a,0x93,0xd4,0x57, + 0x27,0x84,0x16,0x25,0x8a,0x5e,0xf7,0xa0,0x3b,0xad,0x22,0xb2,0x30,0x52,0xec,0x8b, + 0xd3,0x4b,0x39,0x14,0xcd,0x9a,0x15,0x27,0xcb,0x9d,0x14,0xc5,0xd8,0xbd,0x4c,0x8a, + 0xe5,0x2a,0x7e,0x20,0x97,0xdc,0x7e,0x39,0x7e,0x31,0xd9,0x1f,0xae,0xcf,0x26,0x33, + 0x33,0x14,0xcf,0x91,0x3b,0x0d,0xcc,0xfe,0x64,0x26,0xac,0x7a,0xc8,0x41,0x50,0x63, + 0x44,0xe3,0x7e,0xbb,0xab,0x7d,0xaf,0xa9,0x45,0x8c,0xd2,0x30,0x9a,0x6c,0x75,0x8d, + 0xf8,0x46,0xf5,0x6e,0x56,0xcc,0xb8,0x7a,0x42,0x6f,0xbd,0xcc,0x99,0x21,0x55,0x1f, + 0xa7,0x41,0x8d,0x81,0x43,0xd2,0x11,0x9a,0xfb,0x80,0x00,0x50,0x54,0xe0,0xd4,0x36, + 0x84,0x38,0xf6,0x04,0xfc,0x2e,0x2c,0xf1,0xb8,0xb7,0xd7,0xef,0x54,0x64,0xfc,0x8d, + 0x5a,0x29,0x6c,0x57,0x58,0x79,0x1a,0x30,0x3e,0x1f,0x8d,0x05,0x7b,0xb1,0xd0,0x8b, + 0xd3,0x1f,0xf7,0x0e,0x4a,0x78,0xdf,0x9b,0xee,0x8f,0x77,0xf7,0x32,0xa7,0xc6,0xa9, + 0xdb,0xb1,0xf7,0xaa,0x4d,0xd5,0xed,0x86,0xea,0xf1,0x9c,0x05,0xb2,0x76,0x3b,0xf5, + 0xa2,0x47,0x5d,0x45,0x15,0x38,0xbe,0x2c,0xab,0xb8,0x99,0x12,0x5b,0x84,0x7d,0xde, + 0xba,0x76,0x35,0x76,0x96,0xd5,0xb3,0xcf,0x3a,0xf5,0x86,0xf5,0x99,0x5c,0x69,0x69, + 0xd0,0x02,0x37,0x8a,0xab,0xb3,0xab,0xa8,0x81,0x1d,0xb6,0xa5,0xbd,0xda,0x11,0x2e, + 0xf5,0xaf,0x76,0xc4,0x15,0x00,0xd4,0x2f,0xc4,0x85,0x00,0x37,0x46,0x97,0xfb,0xeb, + 0x4b,0x8d,0x3d,0xfc,0xf5,0xde,0xbe,0xae,0xb1,0xd4,0xc3,0xbf,0xd1,0x85,0xff,0x87, + 0xf0,0x76,0xa4,0x93,0x4f,0xd2,0x2e,0xfc,0xbf,0xae,0xa1,0xb1,0x7e,0xa4,0x23,0x6a, + 0xeb,0x5a,0x92,0xc6,0xe1,0x15,0xde,0x19,0xc8,0xac,0x18,0x32,0xad,0x2d,0x5b,0xcc, + 0x12,0x90,0xf4,0x4f,0xec,0x68,0xa4,0xd3,0x2c,0xf0,0x2a,0xc0,0xc4,0x8b,0x27,0xbe, + 0xab,0x4d,0xa0,0xfd,0x2e,0x94,0x9b,0xdc,0xf1,0xdf,0x18,0x6a,0x59,0x3d,0xd9,0x51, + 0xb5,0x69,0xd1,0xf9,0x0e,0xb4,0x10,0xd9,0xe9,0x4c,0x73,0x46,0xfa,0x87,0x17,0xd6, + 0x0b,0x0d,0xfe,0xb3,0xf7,0xb5,0x7d,0xad,0x23,0xfe,0xef,0xc0,0xda,0xff,0xd0,0xdd, + 0xb7,0xfa,0x85,0x8c,0xae,0xc8,0xd8,0xb5,0x5e,0x6a,0xf0,0x9f,0xdd,0x45,0x47,0xe9, + 0xac,0x4a,0x77,0xd7,0xea,0x7d,0xe8,0xbe,0xb4,0xba,0xa5,0xbc,0xae,0xc8,0xa3,0x4e, + 0x77,0x00,0x60,0xf0,0x07,0x44,0x72,0x6d,0x02,0xba,0x66,0x32,0xd2,0xc9,0xd3,0x98, + 0x2e,0x59,0x74,0x35,0x0f,0x86,0x33,0x6b,0xe3,0x55,0x0a,0x3d,0xbb,0xe5,0x00,0xa0, + 0xef,0x8a,0x1a,0x9c,0x9d,0x2c,0xc6,0xfa,0x21,0x88,0xdc,0x01,0xaa,0x95,0xc1,0xe5, + 0xe6,0x8c,0x44,0x96,0xe1,0xab,0x1d,0x28,0x82,0x3d,0xf0,0x1f,0xf2,0xcb,0x10,0x5d, + 0x90,0xab,0xa9,0x86,0x06,0x05,0x5d,0xb4,0x41,0x29,0xfa,0x21,0x0c,0x07,0x8a,0xe1, + 0xb2,0x12,0xba,0x67,0x43,0x42,0xa7,0xd7,0x42,0xf9,0x09,0xe9,0xc6,0xf0,0x49,0xde, + 0x79,0x3a,0x17,0xd7,0xb5,0x30,0x00,0xe4,0x9c,0x5c,0xe1,0x35,0x11,0xd8,0x39,0xac, + 0x40,0xbb,0x2d,0x43,0xdf,0xa0,0x1b,0x19,0x23,0x5d,0xa4,0x68,0xed,0xb6,0x96,0x5c, + 0x01,0x0a,0x93,0xb7,0xab,0x66,0x07,0x8e,0x16,0xd9,0x49,0xea,0x6a,0xb6,0x06,0x44, + 0x16,0x4f,0x84,0x1c,0xbc,0x2f,0x32,0xf5,0x2e,0xf5,0x0d,0x3b,0xf6,0xec,0x36,0x79, + 0x31,0x8e,0xf4,0x4f,0x91,0x1b,0x68,0xb2,0xeb,0xc3,0xcd,0xcb,0x74,0xf8,0xed,0xd5, + 0x0e,0xf7,0x2d,0x51,0x92,0x90,0x10,0x7d,0x63,0x71,0xca,0xac,0x67,0xd3,0x90,0xaf, + 0xdb,0x7e,0x08,0x7b,0x4d,0xcf,0xa7,0x04,0x93,0x29,0x02,0x1e,0x8d,0xe1,0x04,0xf7, + 0xde,0xe1,0xb1,0x03,0x62,0x8b,0x46,0x35,0xa0,0xd9,0x1e,0x22,0x87,0x46,0x98,0x3f, + 0xd2,0x2b,0x86,0xa9,0xa6,0x5d,0x2d,0x75,0x5e,0xd8,0xc3,0xfa,0xe1,0x1b,0x84,0x87, + 0x96,0xce,0xbc,0x44,0x0b,0x42,0xc7,0xdd,0x4a,0x34,0x9b,0xba,0x90,0xfe,0x8f,0x5a, + 0x2b,0x9d,0xb9,0x5a,0x02,0x0b,0x0d,0x30,0x74,0xb5,0x45,0x02,0x10,0x00,0x55,0x4a, + 0x8b,0xdd,0x79,0x08,0x70,0x39,0x79,0xff,0x8e,0x2b,0x18,0xd6,0xab,0x9d,0x08,0x86, + 0x83,0x26,0x38,0x9a,0x17,0x8d,0xb1,0x8d,0x9f,0xa5,0xd9,0x4c,0x61,0x35,0x09,0x6c, + 0xd8,0x8e,0x2c,0x17,0xdd,0xc0,0x0c,0x3f,0x8b,0x3e,0x5f,0xed,0x50,0x3e,0x54,0x23, + 0xef,0x0d,0xb1,0x94,0x72,0x44,0xba,0xd2,0x3c,0x56,0x23,0x97,0xe2,0x49,0x38,0x8f, + 0x7c,0x37,0x85,0x62,0x40,0xf3,0xf0,0xdc,0xae,0x9d,0x17,0xc7,0x7c,0x92,0xb2,0x0e, + 0x25,0xca,0x15,0x91,0x08,0xb8,0x8b,0x44,0x17,0xc0,0xd8,0xb9,0x97,0xaa,0x3d,0x60, + 0xe6,0xe1,0x19,0xc8,0xb1,0x1a,0x42,0x3c,0x5b,0x52,0x65,0x3e,0xd2,0xba,0xa8,0xd6, + 0x82,0x34,0x3d,0xeb,0x6d,0x07,0x81,0x90,0xe3,0xfb,0x8e,0x58,0xfd,0x0a,0x1e,0xdc, + 0x78,0x7f,0xe0,0x42,0xaf,0x40,0x04,0xb4,0xa5,0x71,0x37,0x93,0xc0,0x6e,0xd3,0xd7, + 0xe1,0xbb,0x40,0xc3,0x15,0xfa,0xc5,0x7b,0xeb,0x69,0x09,0xc9,0xdb,0xb0,0x78,0x61, + 0xb4,0x88,0x8e,0xb4,0x77,0x29,0x54,0x0c,0x13,0x37,0xd1,0xbc,0xa9,0x76,0x17,0x2e, + 0x62,0x2d,0x9a,0xe1,0x22,0x26,0xbe,0xeb,0x46,0x89,0xb5,0xf1,0xca,0xd6,0x66,0xb1, + 0x3b,0x1d,0xe9,0xcf,0x95,0x0d,0x02,0x75,0x3f,0x2d,0xd2,0x96,0x31,0x04,0xc1,0x75, + 0x11,0x07,0xda,0xd4,0xf6,0x13,0xa2,0x81,0x84,0x64,0x55,0x5d,0x43,0x3f,0x24,0xe4, + 0x87,0x5e,0xa9,0x87,0x71,0x1c,0xde,0x24,0x6e,0xfc,0x6a,0xc7,0x3e,0xd4,0xd2,0x50, + 0xbb,0x82,0x9e,0x44,0xd7,0x71,0x78,0x19,0xbb,0x49,0x62,0x49,0x38,0x28,0xf3,0xa2, + 0xc3,0x04,0x00,0x98,0x47,0x73,0x4b,0xd2,0xa8,0x9b,0x41,0x01,0x36,0x2f,0x00,0xd2, + 0x53,0xf2,0x7a,0xe5,0x84,0x7e,0x39,0x61,0x57,0x24,0x28,0x1d,0x61,0xce,0xcd,0x1f, + 0xdd,0xe6,0x8d,0x75,0x06,0x43,0x00,0x02,0xb8,0x39,0x07,0x55,0x2b,0x4c,0x87,0x04, + 0xcf,0xbf,0x65,0x87,0x89,0xae,0x61,0x75,0xa7,0x1e,0x50,0xa7,0xe8,0x4e,0x3f,0x3c, + 0x61,0x92,0x98,0xef,0x3a,0x84,0x14,0x01,0x89,0x56,0x31,0x70,0x53,0x40,0xdc,0x2b, + 0x10,0x50,0x34,0x0f,0x56,0x10,0xa8,0x23,0xc8,0x72,0x93,0x19,0x2d,0xf3,0x87,0xff, + 0x79,0x7e,0x0e,0xc4,0x29,0x06,0x89,0x39,0x11,0x3b,0xae,0x8c,0x1f,0x87,0xaf,0xc6, + 0x87,0x9f,0x89,0x58,0x01,0xcd,0x55,0xf7,0xaa,0xe3,0x46,0x7e,0x78,0x37,0x87,0xcd, + 0x71,0x04,0x98,0x7c,0xa8,0x9d,0x63,0xf7,0x8c,0x74,0x5a,0xea,0x26,0x69,0x92,0x23, + 0x12,0x9b,0x4b,0xa0,0xe2,0x38,0x0c,0x53,0xa6,0xd0,0x8e,0x9d,0xda,0x6d,0xe2,0x6c, + 0xfd,0xde,0x8b,0xfd,0x03,0xfd,0x50,0x5b,0x04,0x3e,0xac,0x27,0x0e,0x5c,0x03,0x1c, + 0x09,0xf1,0xbe,0x5d,0x00,0xd4,0x9b,0xe8,0xc5,0x8c,0x48,0xe5,0x9b,0xb3,0xcf,0xed, + 0x8f,0x9f,0x7e,0xa1,0x9c,0xc0,0xf5,0x05,0x11,0xb7,0xb4,0x77,0x53,0x2a,0x95,0x0f, + 0x28,0x9b,0x33,0x01,0x24,0xd5,0xec,0x6b,0xdb,0xf3,0x51,0x9e,0x01,0x3e,0x1d,0xbb, + 0x26,0x92,0x1d,0xed,0xcb,0xd9,0x0f,0x38,0x73,0xcf,0xf6,0x35,0x3b,0xd5,0x60,0x92, + 0x4c,0x88,0xad,0x39,0xb0,0x1f,0x90,0x45,0x5d,0xcb,0x0b,0x69,0x5a,0x48,0xb4,0xe3, + 0x45,0x80,0x25,0x50,0xbd,0x45,0xb8,0x5b,0x49,0x02,0xa2,0x9e,0x65,0x59,0x59,0x01, + 0x35,0x13,0x88,0x88,0xcc,0xb3,0x00,0x28,0x2e,0x2f,0x09,0xba,0x97,0x10,0x44,0xe6, + 0x50,0x2a,0x9d,0xa1,0xc5,0x26,0x67,0x65,0xdc,0x89,0x9b,0xc6,0x1e,0x94,0xb1,0xa7, + 0x48,0x42,0xf3,0xc9,0xd4,0x61,0x78,0x46,0xf4,0x0e,0x3f,0x8a,0x99,0x22,0xef,0xd4, + 0x5a,0x67,0x67,0xef,0x5e,0x1b,0x39,0xbd,0x53,0x6a,0xc0,0x3e,0xca,0x76,0x9d,0x90, + 0x76,0xf5,0x12,0x45,0x64,0xaa,0x43,0x0b,0x73,0x85,0xd7,0x17,0xc5,0x44,0x33,0x94, + 0xe3,0x0f,0x22,0x8f,0x76,0xe4,0xa5,0xa0,0x8e,0xff,0x01,0xb5,0xc2,0xe9,0x54,0xd2, + 0xcc,0x18,0x0d,0xbe,0x22,0x45,0xe2,0x38,0x29,0xc7,0x7a,0x1d,0x91,0x04,0xe8,0x4f, + 0xf2,0xb6,0xf1,0xc0,0x52,0xa1,0x9c,0x92,0xd1,0x12,0x57,0x44,0x33,0x5b,0x1c,0xfa, + 0xb8,0xb3,0xb1,0x18,0x9d,0x71,0x8a,0x2c,0xf7,0x16,0xbe,0x1c,0x17,0x1a,0x11,0x84, + 0x25,0x0c,0xe6,0x21,0x72,0x95,0xf0,0x26,0x00,0x5a,0x8a,0x07,0x6b,0x16,0xb0,0x5a, + 0xfc,0xfb,0x9a,0xc5,0x56,0xe0,0xd2,0x39,0x75,0x0a,0x81,0xd6,0x9c,0x41,0x9b,0xad, + 0x2d,0x31,0xbf,0x2d,0x03,0xc8,0x33,0x24,0xa8,0xec,0x16,0xa1,0xbf,0x72,0x0d,0xaa, + 0x8c,0x46,0x29,0x46,0xee,0xad,0x7a,0x23,0xf3,0x29,0x80,0x9b,0xf8,0x8f,0xba,0xc1, + 0x29,0x61,0x6e,0xdf,0xfa,0x6e,0x70,0x89,0x82,0xe1,0xfe,0x6e,0x99,0x3f,0x21,0xb0, + 0x9b,0xa0,0xab,0x25,0x73,0x8d,0xdd,0x6a,0x6b,0xc1,0x1a,0x21,0xfd,0x54,0x40,0x57, + 0x82,0x75,0x61,0x0c,0x19,0xc4,0xd2,0xf0,0xf2,0xd2,0x77,0x71,0x57,0xcb,0x59,0xb7, + 0x90,0xee,0x20,0xd8,0xa0,0x9f,0x32,0xd8,0x8a,0x02,0x1f,0xe8,0x2d,0xfa,0xe1,0x7b, + 0x17,0x76,0x82,0x36,0xf6,0xed,0xe0,0x8a,0xa8,0x09,0xd0,0x02,0x5c,0x05,0xb9,0x65, + 0x2d,0x4d,0xa1,0x0f,0xb2,0xff,0x36,0x56,0x25,0x30,0x47,0xb3,0xd8,0x46,0x0e,0x34, + 0xb7,0xef,0x80,0xaa,0x68,0x20,0x54,0x01,0xad,0xdb,0xef,0xd3,0xe5,0x5c,0x7b,0x02, + 0x1b,0x27,0x19,0x82,0x70,0xb5,0xbf,0xdb,0xce,0x12,0x80,0x67,0xdc,0x69,0xf3,0x05, + 0xba,0x49,0xe1,0xf6,0xbf,0x05,0xd1,0x69,0xe2,0xcd,0x6d,0xdf,0x12,0xe4,0x43,0xeb, + 0x59,0xbb,0x9b,0x30,0x85,0x20,0x89,0x86,0x3f,0xfe,0xf4,0x87,0x1c,0x47,0x02,0x53, + 0xf6,0xef,0xac,0x15,0xab,0x5f,0x25,0x61,0x02,0x1d,0x24,0x99,0xda,0x61,0xe2,0x97, + 0x51,0xab,0x3a,0x29,0x84,0xaf,0x80,0xe4,0x68,0xe0,0x26,0x11,0xf0,0x41,0x4b,0xd4, + 0x81,0xb5,0xf7,0x00,0x8d,0xbb,0x84,0x03,0xf0,0xb7,0x8f,0xfb,0xca,0x8d,0x28,0x45, + 0x6c,0xb0,0xfc,0xbc,0xb8,0xdb,0xeb,0xf0,0x9e,0xae,0x80,0xfc,0x03,0xce,0x7e,0x6e, + 0xa7,0x82,0xe8,0x97,0x26,0x0c,0x9a,0x05,0x82,0x09,0x49,0x10,0xec,0x93,0xf8,0x2e, + 0x23,0xb3,0x48,0xb7,0x2c,0x0d,0x77,0x43,0x40,0xa4,0x1f,0x34,0x0b,0xa6,0xe9,0x5c, + 0x03,0x64,0x3b,0x31,0x4c,0x4b,0xfb,0x92,0xb8,0x04,0x2f,0xcd,0x96,0x69,0x5a,0x04, + 0x1a,0xa5,0x97,0xa6,0x40,0xb6,0x7d,0xa0,0x17,0x3e,0xc0,0x52,0x3b,0xce,0x68,0xba, + 0x7d,0x05,0x6b,0xe8,0x4e,0xa7,0xc8,0xb6,0x98,0xde,0x31,0x6f,0x30,0x91,0x4b,0x11, 0xd4,0x80,0x72,0xff,0x0b,0x14,0x5d,0xa8,0xce,0xf9,0xd4,0x2f,0x95,0x81,0x15,0x0f, - 0xac,0x35,0x76,0xe5,0x47,0x24,0xbb,0x48,0x16,0xab,0x21,0x9f,0xa7,0x76,0xa4,0x7a, - 0xa8,0x3b,0xad,0xdb,0xae,0x02,0xa5,0xdc,0x9c,0x58,0xbc,0xc9,0xc0,0x45,0xb4,0x07, - 0x14,0x66,0xb1,0x09,0x99,0x07,0x41,0x12,0xe4,0x17,0xe6,0xad,0x89,0x9d,0x2c,0x62, - 0x4c,0x8f,0xed,0x4b,0x27,0x2e,0x8c,0xbb,0x5e,0x7e,0x4c,0xf7,0xdb,0xcd,0xb7,0x9f, - 0x83,0x46,0x07,0xb6,0xd7,0x47,0x18,0x6f,0x5f,0x3b,0x05,0x95,0x35,0xa8,0xde,0x65, - 0x3c,0xb4,0xce,0x9a,0x92,0x3f,0x09,0x28,0x9d,0x4c,0x40,0x11,0x0d,0xff,0x1d,0x3a, - 0x00,0x02,0x9e,0xb7,0x0f,0xec,0x37,0x3b,0xd2,0x48,0xda,0x08,0x00,0x3c,0x91,0x46, - 0xc2,0x29,0xd0,0x62,0x74,0x9b,0xd5,0x50,0xfd,0x0e,0x50,0x35,0x42,0x16,0x18,0x5b, - 0xda,0x09,0x4c,0x98,0xa0,0x88,0x84,0x09,0xb8,0x29,0x89,0x30,0x84,0x3c,0x0c,0x57, - 0x20,0xeb,0x15,0x42,0x4a,0xb6,0xe0,0xa7,0xce,0x25,0x4a,0xbf,0x5c,0x3b,0x5b,0x74, - 0xbe,0xd6,0x23,0x57,0x2e,0x0a,0x09,0xb8,0x84,0x87,0x98,0x40,0xf3,0x3e,0x73,0x3c, - 0x49,0xc5,0x50,0x9e,0xc6,0xf2,0x2b,0x16,0x3f,0x0a,0x9b,0xa0,0x15,0x48,0x81,0x7c, - 0x25,0x0e,0x9e,0xff,0x0e,0xc2,0xf3,0x0d,0x4c,0xbc,0x31,0xf9,0x69,0x6e,0xac,0x47, - 0x02,0x92,0x5b,0xb1,0xed,0x9b,0x2f,0xc5,0xbe,0xef,0xb6,0x9e,0xb6,0xdd,0x39,0xa6, - 0x80,0xe6,0x39,0x97,0x00,0x3a,0xee,0x1f,0x96,0x0c,0x65,0x8b,0xd1,0x1d,0x6c,0x22, - 0x82,0xd2,0xe6,0x7c,0x62,0xc7,0xb3,0x81,0x46,0xae,0xec,0x02,0xca,0xd1,0xc2,0x2b, - 0xa1,0x68,0x49,0x1c,0xfc,0xe8,0xc0,0x9e,0x94,0x8b,0x06,0xcb,0x05,0xc2,0x13,0x7a, - 0x36,0x6e,0x25,0x1a,0xfa,0x1b,0x39,0x93,0x43,0xed,0x78,0x16,0x80,0x96,0x80,0x32, - 0xd1,0xaf,0x28,0xae,0x0b,0x0d,0x2a,0xad,0x83,0x82,0x91,0xa9,0xa1,0x37,0x06,0xac, - 0x29,0x29,0xc6,0x26,0xae,0xba,0x8f,0x49,0x4e,0x33,0x59,0x80,0x46,0xe1,0xf2,0x6e, - 0xaa,0x54,0x28,0x48,0xe3,0x3e,0x0a,0xc3,0xa2,0x4a,0x01,0xba,0xec,0xb5,0xed,0x8f, - 0x61,0x70,0xce,0xc4,0x4d,0x02,0x52,0x19,0xac,0xc2,0x46,0x2b,0x6c,0x85,0x54,0x2b, - 0x6d,0x96,0x54,0xe2,0x30,0x65,0xe9,0x7f,0xc7,0x8e,0x38,0x75,0xc8,0xd8,0xce,0xd4, - 0x73,0x0a,0x6c,0x29,0x00,0x32,0x2b,0xbb,0xb0,0x50,0xb1,0x02,0x72,0x47,0xba,0x30, - 0x70,0xb3,0x98,0xb5,0x43,0x12,0x55,0x35,0x74,0x5f,0x62,0xda,0x0c,0x39,0xa4,0x19, - 0x23,0x90,0x99,0x1c,0x92,0x5c,0xc9,0xc2,0x38,0x6c,0x35,0xb4,0x7a,0xa7,0x34,0x68, - 0xd5,0x36,0xf9,0xe8,0xdc,0x28,0xd3,0x5b,0xad,0x1a,0x4b,0x9c,0xcc,0x52,0x14,0x12, - 0xd9,0xde,0x2d,0x0a,0x23,0xbe,0x73,0x93,0x29,0xca,0xab,0x50,0xb3,0xbd,0xab,0x70, - 0xec,0x75,0x88,0x39,0x45,0xbc,0x88,0xe6,0x4f,0x1b,0xf8,0x78,0x3a,0xff,0xce,0xa1, - 0xd7,0xe3,0x8d,0x10,0xe6,0x6a,0xa4,0xd9,0x3c,0xd9,0x6e,0x03,0x3d,0xf9,0xc9,0x1e, - 0x5f,0x29,0xf4,0xba,0x5a,0x4e,0x63,0x8b,0x53,0x5e,0x64,0x4e,0xa9,0x0d,0x12,0xa8, - 0x26,0x5a,0x91,0x72,0xcd,0x9f,0x41,0x02,0xd1,0xae,0x06,0x8a,0x5e,0x68,0x63,0x8a, - 0x0a,0xac,0xa1,0x82,0xab,0xac,0xea,0xc1,0x27,0x7e,0xa8,0xf4,0x00,0x3c,0x3d,0xed, - 0x80,0x99,0x0f,0x72,0xb4,0x32,0xef,0x29,0xb1,0xa0,0xee,0x53,0x58,0x50,0x37,0x63, - 0x41,0xdc,0x3c,0xed,0xb7,0x4a,0x1c,0xf8,0x34,0x62,0x4d,0x55,0xe8,0x3a,0x41,0xe4, - 0xc2,0x46,0x33,0xd6,0xe1,0xee,0xf3,0x3f,0x93,0xc4,0xe2,0xf2,0xd5,0x0a,0x4c,0x15, - 0xae,0xfe,0x12,0xdc,0xb0,0x4a,0x1d,0xc8,0x7e,0x99,0x75,0x4d,0x91,0x90,0xba,0x09, - 0xb0,0x89,0x29,0x6e,0xd3,0x70,0x31,0x02,0xc2,0x37,0x43,0xa2,0x48,0xbc,0x7e,0x27, - 0x84,0x15,0x07,0xee,0x95,0xb2,0x7c,0xed,0x9d,0x8f,0x16,0x1b,0x3a,0xdc,0x00,0x22, - 0x4b,0x7c,0x51,0x52,0x5f,0x54,0x4e,0x53,0x1b,0x58,0x12,0x84,0xee,0x18,0xba,0x8b, - 0x70,0x88,0x33,0xe6,0x92,0x58,0x09,0x38,0x23,0x50,0x41,0x90,0xbe,0xa0,0x1c,0xea, - 0x8e,0xd9,0xe6,0x47,0x40,0xac,0xb3,0x7b,0xde,0x1d,0x9d,0x1f,0x49,0xc2,0x3f,0x86, - 0x8a,0x6b,0xc3,0xcc,0x85,0x8f,0xbc,0x58,0x54,0x86,0x5f,0xb6,0x91,0x53,0x04,0xab, - 0x75,0x70,0x5d,0x87,0x7d,0x7d,0x04,0x99,0xc1,0x01,0x81,0xd5,0x76,0x23,0x74,0xfb, - 0xa2,0x01,0x9b,0x9a,0x63,0x5d,0x5a,0xc8,0x52,0x5e,0xbf,0xf9,0xc8,0x9a,0xf5,0x67, - 0x04,0x1b,0x32,0x0a,0x84,0x9a,0x86,0x36,0xed,0xb5,0x08,0xc9,0xa7,0x1b,0x1f,0x56, - 0x92,0x16,0x6d,0x8c,0xaa,0xc1,0xfa,0xe8,0x83,0x15,0xab,0x95,0xb1,0xc7,0xb5,0xe1, - 0x4a,0x9d,0xad,0x34,0xf3,0x4f,0xa1,0xc0,0x11,0x89,0x1e,0x42,0x8f,0x41,0xb5,0x45, - 0x19,0xb2,0x16,0x08,0xf3,0x1b,0xb6,0x68,0xfb,0xb8,0xa8,0x2c,0xaa,0xbf,0x83,0xcd, - 0xbb,0x98,0x30,0x58,0x10,0x85,0xb4,0xff,0xfc,0xed,0x3c,0x46,0x89,0x1a,0xf1,0xd7, - 0x65,0xfe,0x03,0xec,0x3a,0x86,0xf5,0x40,0xc0,0x0a,0x6b,0x90,0xc7,0xa2,0x16,0x0e, - 0xc5,0x9d,0x67,0x46,0xa4,0xf5,0x81,0x49,0x77,0xd6,0xab,0xe1,0x48,0x59,0x05,0x40, - 0x8a,0xb4,0x75,0xb7,0x61,0x09,0x28,0x64,0x1c,0x72,0x2b,0xa7,0x8a,0xbb,0x88,0xa6, - 0x81,0xfa,0x4a,0x66,0x0e,0x03,0x00,0xc5,0x01,0x90,0x0c,0x09,0x86,0xc2,0xd4,0x90, - 0x14,0xb1,0x09,0x4c,0xa1,0x3e,0xd2,0x2e,0xe1,0x05,0x49,0xfc,0x77,0xf1,0x83,0xce, - 0x9a,0xfc,0xa0,0x44,0xa8,0x0b,0x74,0xff,0x03,0x80,0x31,0x25,0xfb,0x05,0xa2,0xfc, - 0x38,0xd5,0xcf,0x93,0x78,0xd9,0xd6,0xa9,0x83,0xc7,0x56,0x6b,0x50,0xf7,0xde,0x7a, - 0xd4,0x3d,0x65,0x2e,0xd4,0x6e,0x93,0xce,0x45,0x74,0x26,0xf9,0x3d,0x45,0xeb,0xa0, - 0x5c,0x6d,0xd3,0x9e,0x87,0x03,0x32,0x91,0x95,0x57,0x80,0x1b,0x58,0xb5,0x04,0x2c, - 0x97,0x9e,0xd9,0xd7,0xb4,0xea,0xa9,0xe5,0x91,0xe5,0x78,0x40,0x11,0xd4,0x27,0x41, - 0xb1,0x04,0x3d,0x2d,0x4e,0x49,0x27,0x28,0xaf,0xc0,0xf1,0x53,0x3b,0xa1,0x3d,0x99, - 0xa0,0x31,0x44,0x08,0xa2,0xac,0x67,0x02,0x91,0xf7,0x41,0xe8,0x62,0xff,0x1a,0xb4, - 0x51,0x44,0x82,0x1a,0x9f,0x0b,0x3b,0x34,0xa9,0x2a,0x40,0xe2,0x15,0xf3,0x22,0x89, - 0x6b,0x66,0xce,0x5e,0xe8,0x8c,0x16,0x2e,0xc0,0x9c,0x88,0xd6,0x93,0xf1,0x27,0x0f, - 0x44,0x3c,0xce,0x2c,0xe2,0x54,0x77,0x0d,0x9c,0xaa,0x63,0xfc,0x08,0x70,0xb5,0x3d, - 0xb2,0xdd,0x02,0x1c,0x1d,0x42,0x2e,0x34,0xd3,0xf0,0xc2,0x08,0xbb,0xed,0x2a,0xdb, - 0x4e,0xfe,0xd4,0x02,0xda,0xce,0x1f,0x59,0xf0,0x9f,0x30,0xc7,0x1f,0x72,0x6e,0xe4, - 0xca,0x09,0x31,0x3a,0x74,0x42,0xd5,0xa7,0xc8,0xfe,0x55,0xd2,0x39,0x36,0x52,0xa1, - 0x12,0xb0,0x60,0x5c,0x7b,0x68,0x62,0x87,0xe1,0x2a,0xfc,0xc6,0x80,0x26,0x3c,0x45, - 0xfa,0x95,0x01,0x9b,0x28,0x1c,0x50,0x7b,0x92,0xa5,0x72,0xa7,0x0d,0xa7,0xd5,0x62, - 0x99,0xac,0x80,0x24,0x11,0xe4,0xe2,0xca,0x4d,0x2c,0xcb,0xa0,0x19,0x4c,0x3f,0xe0, - 0x23,0x84,0xba,0x32,0x28,0x7c,0xc4,0xb8,0xc1,0xe0,0x4f,0x7d,0x29,0x80,0xa3,0x7e, - 0x70,0xfc,0xfe,0x5d,0xbd,0x05,0x21,0x61,0x71,0xb0,0x5e,0x6a,0xfb,0x48,0xf2,0x43, - 0xbd,0x94,0xf6,0x51,0xb1,0xb8,0x3c,0xd5,0xe0,0xf2,0x98,0x9d,0xad,0xbd,0xd7,0xdd, - 0xef,0xa5,0x3d,0xfd,0xe4,0x2d,0x9c,0x04,0x10,0x73,0xb6,0xb6,0x95,0x67,0x24,0x6b, - 0x58,0x55,0xdd,0x6b,0x8a,0x47,0xd4,0x50,0x47,0x93,0x96,0x3c,0x8a,0x6e,0x6e,0x7a, - 0xc9,0x20,0x95,0xb8,0xf0,0x3c,0x76,0x35,0xab,0x92,0xac,0x5e,0xcb,0x86,0xc8,0x71, - 0x00,0x59,0x62,0xd3,0x54,0x1b,0x28,0x90,0x98,0x69,0xe0,0x79,0x24,0x6c,0xae,0x29, - 0xd6,0x29,0x10,0xd9,0xdb,0xdd,0xed,0xee,0x55,0x40,0x44,0x10,0xb4,0xa7,0x01,0x65, - 0x6e,0x8f,0x73,0x30,0x41,0xc7,0x85,0x12,0x4c,0xa4,0xfa,0x2a,0x7a,0xa8,0x04,0x04, - 0x96,0x3b,0xee,0xf4,0xdb,0xed,0x7e,0xa7,0xd3,0xef,0x76,0xfb,0xbd,0x5e,0x7f,0x77, - 0x17,0xc8,0x22,0xe8,0xb1,0xc1,0xdc,0x44,0x09,0x97,0x7f,0x36,0xc9,0xe0,0xd8,0x44, - 0xea,0x62,0x69,0xc7,0x1e,0x1a,0x8b,0x00,0x1c,0x28,0xfd,0xe1,0x71,0x91,0xaa,0x2c, - 0x8b,0xde,0x2c,0xe0,0x18,0x64,0x03,0xe4,0x03,0x13,0xd0,0xd8,0xdc,0x48,0x18,0x08, - 0x6d,0x61,0x5c,0xac,0x07,0x1c,0x1d,0x81,0x28,0xc8,0x54,0x77,0x90,0x7c,0xf0,0x1e, - 0x08,0x7d,0xb2,0x98,0x54,0xa3,0x71,0xd1,0x5c,0x03,0x24,0x5f,0x5a,0x65,0x6d,0xff, - 0x4e,0x5f,0x2d,0x30,0xbd,0x0f,0xfc,0xcb,0x27,0x34,0x1d,0xf8,0x95,0x4d,0xff,0x4d, - 0x46,0x8d,0x32,0x0b,0x05,0x82,0x1c,0xa7,0xa6,0x07,0x04,0xb1,0xa2,0x88,0xe0,0xcd, - 0x18,0x3e,0xf8,0xe3,0x13,0x7d,0xc0,0xf1,0x39,0x14,0x89,0x0b,0x86,0x87,0x22,0x6e, - 0xa7,0x9c,0x52,0x9a,0x81,0x32,0xb3,0xc7,0x2a,0x63,0xc0,0xbf,0xdb,0x76,0xf1,0xff, - 0x0f,0x63,0x84,0xb2,0xc2,0xef,0x83,0x53,0x5b,0x58,0x54,0x73,0x2e,0x30,0xe8,0xf1, - 0xa4,0x01,0x33,0x56,0xbc,0x5a,0x58,0xdf,0x47,0xa7,0x39,0xfd,0x20,0x35,0xa9,0x6b, - 0x18,0x02,0xf2,0x4e,0x9c,0x89,0xd4,0x21,0xc8,0xdb,0xc8,0xf9,0x73,0xe1,0xf8,0xe3, - 0x3b,0x53,0x1b,0xc1,0xda,0x8b,0xa0,0xa6,0x67,0x6f,0x09,0x57,0x8e,0x4f,0xf9,0x98, - 0x85,0x0f,0x1a,0x48,0x41,0x21,0xb3,0xad,0x73,0x0b,0x2b,0xab,0xe8,0xbc,0xb6,0x76, - 0x13,0xc1,0x36,0xd0,0xae,0x6d,0x20,0x3c,0xe2,0x28,0x40,0x91,0xd5,0xa7,0x7c,0x98, - 0x8b,0x1b,0x7b,0x01,0x98,0xe7,0x69,0x74,0xb1,0x8d,0xb1,0x8c,0xcf,0x6b,0x57,0x88, - 0x51,0x95,0xcb,0x95,0x8e,0x5a,0x6b,0x7c,0xf8,0xe5,0x9b,0xf1,0xf8,0xd6,0x8b,0x2e, - 0xa1,0x3a,0x54,0x92,0x9b,0xaf,0x65,0xb5,0x5a,0x6d,0x79,0x16,0xb3,0xdb,0x12,0x56, - 0xd9,0xce,0x6e,0xab,0xf5,0x08,0xa2,0xfc,0x24,0x81,0xa4,0x35,0xae,0xd6,0xee,0x79, - 0x74,0xa3,0xf4,0x2b,0xbb,0x7d,0x21,0x3a,0xcd,0xf5,0xf9,0x34,0x30,0x9c,0x85,0x91, - 0x63,0x4f,0xe8,0x24,0x87,0x88,0x6a,0xc9,0x42,0x9e,0x8e,0x20,0xc6,0x4a,0x01,0x31, - 0xb3,0x83,0xdd,0x57,0x3b,0xe2,0x97,0x4c,0xd9,0x2b,0xa5,0xbc,0x28,0xa5,0xec,0x97, - 0x52,0x5e,0x96,0x52,0xda,0xad,0x72,0x52,0xbb,0x9c,0xd4,0xc9,0x92,0xa4,0x69,0xfe, - 0x91,0xcd,0x49,0x73,0x04,0x61,0xdd,0xa9,0x9f,0xe1,0x38,0xfa,0x1b,0x67,0x58,0x1c, - 0xd6,0xd3,0x0f,0x04,0xfe,0xc6,0xf3,0x80,0xb5,0x88,0x85,0x94,0x8b,0xcb,0xfb,0xbc, - 0x0a,0x81,0x14,0x9e,0xd9,0x49,0x27,0x72,0xe4,0x46,0x89,0x3b,0x77,0x0a,0xb8,0xb4, - 0x72,0x22,0xf6,0x34,0x43,0x6c,0x89,0xd7,0xad,0xda,0x53,0x36,0x7b,0xda,0x9c,0x8c, - 0x57,0x1e,0xb2,0x28,0xe3,0xca,0x84,0xc2,0xd3,0xdf,0x41,0xd4,0xf2,0xf0,0x74,0xd8, - 0x8e,0xd7,0xe3,0xb2,0xd1,0x2d,0x55,0xa8,0x1a,0x9b,0xd8,0xe8,0x2b,0xb7,0x5c,0x6e, - 0x1c,0xbb,0xed,0x8e,0xba,0xd4,0x3c,0x92,0x27,0x80,0x28,0x79,0x74,0x2c,0x8f,0xaf, - 0xbc,0xea,0x08,0x95,0x13,0x78,0xf0,0x84,0x9a,0xc9,0xfb,0xe8,0xe0,0xf8,0xe8,0xb5, - 0xd6,0xa0,0x03,0x1b,0x5f,0x7a,0xe7,0x90,0xbd,0x6e,0xee,0x26,0x06,0xaa,0xaa,0xaf, - 0xdc,0x83,0x63,0x71,0x90,0x0b,0xa3,0x77,0xaf,0xdd,0xe4,0x0e,0x66,0x93,0xb0,0xae, - 0xc4,0xde,0x50,0xc2,0x83,0x52,0x65,0x36,0xc9,0xa5,0xa7,0xe7,0x27,0x48,0xc7,0x4b, - 0xa3,0xe0,0x36,0x9b,0xe2,0xd8,0x46,0x96,0xb6,0x80,0x06,0x16,0x07,0x29,0xbb,0x79, - 0x64,0xe4,0xed,0x3d,0x65,0xe8,0xb0,0xc2,0xc0,0xb3,0xf0,0xa8,0x49,0xbb,0xb4,0xc9, - 0x8b,0x0e,0x47,0x7b,0xf6,0x7b,0xbb,0xb3,0x77,0x0b,0x22,0xca,0xd8,0x71,0xd1,0x94, - 0x43,0x76,0xd6,0xbf,0x34,0x50,0x62,0x93,0x56,0x74,0x8b,0x9d,0x3c,0x79,0xc4,0x9d, - 0x56,0x4f,0x05,0xf7,0xdb,0x37,0x1f,0x34,0x39,0x6e,0x31,0xe0,0x37,0xb7,0x20,0xee, - 0xa0,0xb2,0x30,0x8d,0x50,0x6b,0x75,0xfc,0x49,0x73,0x1e,0x4c,0x16,0x9e,0xa3,0xbd, - 0xff,0x78,0xf4,0x37,0x0c,0x7c,0xea,0xcc,0xbf,0x77,0xf0,0xfb,0xed,0x97,0x1d,0x65, - 0xf0,0xaf,0x59,0x75,0x61,0xba,0x15,0x93,0x99,0x45,0xcc,0xe1,0xd4,0x99,0x2c,0xc6, - 0x8e,0xd4,0x6d,0x50,0x08,0xf8,0xf9,0xe4,0x0c,0x76,0xaf,0x27,0x4a,0xff,0xa5,0x69, - 0x50,0x0b,0xdc,0xdd,0xaa,0x19,0x28,0x44,0xa0,0xf5,0x72,0x4f,0x48,0x38,0xb7,0x61, - 0xdc,0x64,0x6f,0xc2,0xe2,0x34,0x73,0x78,0x54,0x31,0xa5,0xd7,0x8b,0xe4,0xae,0x39, - 0xbe,0x43,0x17,0x6b,0x14,0x43,0x58,0xac,0x12,0x48,0x35,0x20,0xe9,0x04,0x25,0xda, - 0x98,0xc2,0xbc,0xbb,0xfe,0x22,0x58,0xc4,0x32,0xfb,0xfb,0x27,0x8b,0xc3,0x45,0xe3, - 0x06,0x79,0xdc,0xaf,0xb1,0x5a,0xa4,0xc8,0xa4,0xf3,0x64,0x36,0x14,0xd7,0xf2,0xfd, - 0xd3,0xdf,0x61,0x4d,0x3c,0xd0,0xb4,0xbc,0x1a,0x7e,0x48,0xbd,0x53,0x81,0x94,0x29, - 0xb2,0x70,0x46,0x3a,0x52,0x5b,0x6b,0xa0,0x27,0xb2,0x13,0x5d,0xd3,0xad,0x41,0xa3, - 0xc8,0x09,0x65,0x51,0xc0,0x98,0x4e,0x5d,0x5e,0x57,0x3f,0xe8,0xd6,0xe5,0x01,0xe9, - 0xee,0xd5,0xe5,0xed,0xea,0x07,0xbb,0x5a,0x63,0x64,0x7b,0xc4,0xad,0x6a,0xbb,0x06, - 0xea,0xb0,0x57,0x97,0xf7,0x42,0x2f,0x33,0x6f,0x99,0x07,0x3b,0x74,0xbf,0x2e,0xef, - 0xa5,0x5e,0x16,0x59,0x52,0xa8,0x00,0x43,0x28,0x4b,0x2f,0x32,0x17,0xb4,0xa2,0x85, - 0xed,0xe1,0x59,0x27,0xfe,0xd5,0x12,0xb2,0x46,0xc7,0x65,0x71,0x21,0xaf,0x2d,0xf0, - 0x9d,0xbc,0x32,0xf5,0x09,0xe3,0x3a,0xb3,0x48,0x8a,0x00,0x28,0xd7,0xcd,0x01,0x75, - 0x9a,0x53,0xd7,0xf1,0x26,0x99,0x57,0x9a,0x48,0x5e,0xb5,0xea,0xb2,0x6a,0x69,0xe1, - 0x61,0x86,0x47,0x0b,0x34,0x4d,0x44,0xc1,0x5c,0x8b,0x4b,0x92,0x63,0x0d,0x5c,0x60, - 0x21,0xda,0x7b,0x5a,0x7c,0x37,0x1f,0x05,0x5e,0x5c,0x8b,0x0c,0x80,0x29,0xdd,0x4e, - 0xb9,0xd4,0xe3,0x62,0x14,0xc6,0x89,0x54,0xd4,0x18,0x9c,0xbb,0x04,0x76,0xad,0x4b, - 0x08,0x6d,0x4d,0xed,0xc6,0xf5,0x27,0x50,0xb9,0xb1,0x39,0x77,0xc7,0x51,0x30,0x88, - 0xd7,0x11,0xc5,0x09,0x40,0x91,0x14,0xbe,0xda,0xad,0x56,0x2b,0x15,0xbf,0xf8,0x7f, - 0x99,0x33,0xd6,0x6a,0x89,0xf4,0x0c,0xfd,0xa3,0xbf,0x7f,0x08,0xe4,0x5e,0xfd,0xa4, - 0x51,0xd4,0xb8,0xde,0x65,0x50,0x63,0x2b,0x4d,0x7d,0xf1,0x3c,0x3b,0xe8,0xaa,0xcc, - 0xe0,0x94,0x22,0x50,0x09,0x62,0xf9,0x36,0x88,0x6e,0xd0,0xe4,0x40,0x7a,0x1e,0xc8, - 0x0f,0xd3,0xa9,0x3b,0xb6,0xb4,0x4f,0x40,0x24,0x87,0xec,0x0d,0xe2,0x37,0xe9,0xb8, - 0xb3,0x11,0x83,0x22,0xe7,0xc9,0x83,0xd4,0x98,0x2f,0x42,0x88,0x73,0xd3,0x18,0x5d, - 0xfd,0xff,0x0a,0xb7,0xa3,0x01,0xad,0x4b,0x35,0x53,0xe1,0x29,0x35,0x37,0xa3,0xb5, - 0x59,0x35,0xa8,0xf5,0xea,0xcd,0x42,0xe4,0x24,0x63,0x4f,0x30,0xee,0x9f,0xd6,0x98, - 0x2b,0x67,0xcf,0xab,0xc5,0x5e,0xaa,0x60,0xd1,0xa5,0x2d,0xd8,0x02,0x45,0x81,0xae, - 0x57,0x29,0x02,0x1f,0xb4,0x00,0x84,0xc0,0x6d,0xd6,0x38,0x84,0x7b,0xeb,0x05,0xc1, - 0x24,0x1d,0xd6,0x2c,0x8a,0xd7,0x1b,0xd6,0x14,0xab,0x59,0xab,0x07,0xd7,0xde,0xdb, - 0x5f,0x35,0x38,0x53,0x73,0xbc,0xd8,0xd1,0xba,0x9b,0x3e,0x69,0xf6,0x50,0xba,0xd2, - 0xbd,0xad,0x46,0x15,0x51,0x6c,0x11,0x34,0x16,0xd5,0x5e,0x45,0x73,0x42,0x82,0xc3, - 0x07,0x10,0xf0,0x15,0xc6,0x75,0x46,0x89,0x5f,0x82,0x10,0x90,0x0d,0x04,0x57,0x3e, - 0xff,0xa3,0xb6,0x24,0x32,0x2a,0x86,0x85,0x29,0xe3,0x6a,0x6c,0x01,0x4f,0x67,0x8f, - 0x28,0xa0,0x46,0xcc,0xc7,0x41,0x46,0x82,0x32,0x6e,0x7c,0xa7,0xf9,0x78,0x8d,0x6b, - 0x14,0x2c,0xd0,0x8d,0x34,0x09,0x02,0x8d,0xcc,0xb2,0x64,0xa1,0x08,0xed,0x08,0x3a, - 0x08,0xa6,0x99,0x9b,0x1f,0xba,0x70,0xc3,0x37,0x39,0xd3,0x5b,0x6b,0x98,0x1b,0x3b, - 0xfb,0xb5,0x98,0xf5,0xc1,0xbe,0x15,0xe3,0x9e,0xd1,0x44,0xd7,0x5e,0x3e,0x58,0xa5, - 0xc2,0x92,0x95,0xf0,0x57,0xac,0x98,0x58,0xa3,0xbd,0x9e,0xa5,0x09,0x47,0x68,0x0d, - 0x7e,0xaf,0x81,0x5e,0x38,0x36,0x81,0x5c,0x4f,0x1f,0x9c,0xc0,0xaf,0xef,0x1f,0xe3, - 0x7e,0xb5,0xc7,0x64,0xed,0x01,0x41,0x67,0x3f,0x37,0xf0,0x85,0x1f,0x8f,0x83,0x10, - 0xfd,0x2b,0xbe,0x13,0xba,0x96,0x6c,0xa1,0x3c,0x85,0xa7,0xb8,0xe4,0x1d,0x85,0xa1, - 0x87,0x6e,0x23,0xc0,0x51,0xd9,0x3d,0x24,0x66,0x4f,0x0e,0x3f,0x90,0x6e,0x19,0xd4, - 0x8b,0xa5,0x29,0x30,0x58,0xa5,0xf9,0x3e,0x4a,0xc6,0x3a,0xbb,0x7b,0x0a,0xdd,0x82, - 0x1d,0xa2,0x28,0x6f,0x55,0xe2,0x00,0x59,0x9b,0x83,0xd0,0xe2,0x62,0x25,0x71,0x80, - 0x0e,0xe7,0x3f,0x21,0x39,0xaa,0x91,0x79,0x5c,0x0c,0xba,0x84,0x42,0x0f,0xff,0xa8, - 0x2d,0x07,0x3b,0x11,0x2d,0x33,0x50,0x50,0xfc,0xaa,0x2b,0x19,0x27,0x91,0x8b,0x03, - 0x39,0xa3,0xbf,0x55,0xd2,0x53,0x09,0xc8,0xaf,0x23,0x0c,0x3f,0xcf,0x2b,0x2d,0xa1, - 0xcc,0xfe,0x89,0x1e,0xca,0x2f,0x77,0x1a,0x10,0x98,0xe8,0x2e,0x77,0x39,0x6d,0x66, - 0xa3,0xc9,0x9a,0xfb,0x00,0x9a,0x30,0xd4,0xa6,0xce,0x0d,0x39,0x23,0x23,0x4f,0xc1, - 0xe5,0xf2,0x68,0x90,0x13,0xa9,0x23,0x4f,0xa0,0x8b,0x10,0xe8,0x92,0xf5,0x18,0xa1, - 0xe3,0xa3,0x34,0x3a,0xdc,0x5b,0xcf,0x19,0xea,0x1d,0xf9,0x16,0x25,0x77,0xdf,0xef, - 0x00,0xf5,0x6f,0xf7,0x7f,0x92,0x1e,0x4f,0x03,0x0c,0xb6,0x55,0xf0,0x78,0xb2,0xb4, - 0x9f,0xe8,0x44,0x60,0xf8,0xf7,0x38,0x2e,0xfd,0xdb,0xfd,0x96,0xbe,0xcb,0xc7,0xe8, - 0xbf,0xd3,0xc5,0xa8,0x6a,0x05,0xeb,0xdd,0x87,0x90,0x89,0x51,0x6f,0xe8,0xc4,0x9f, - 0xf3,0x22,0x02,0xb4,0x12,0xa7,0x98,0xc6,0x77,0x7a,0x00,0xad,0xe9,0x00,0xb4,0x9e, - 0xa5,0xf2,0x84,0xb1,0x8b,0xf4,0xf3,0x6a,0xf6,0x7f,0xae,0xb8,0xf9,0x80,0xa8,0x89, - 0x27,0x8a,0xe8,0x7b,0xb1,0x08,0xbd,0xc0,0x9e,0x90,0xb3,0x31,0x52,0x5d,0x72,0xc6, - 0x6f,0xa2,0xbf,0xdd,0x8c,0xf4,0x18,0x54,0x6b,0x6c,0xbc,0x5d,0x78,0x85,0x78,0x8d, - 0x87,0x5e,0xff,0x62,0x67,0x11,0xf2,0xf9,0x50,0xdc,0x68,0xab,0x64,0xe3,0x4c,0x1a, - 0xa6,0x3b,0x06,0xec,0xf7,0x27,0x44,0xe2,0x13,0x27,0x72,0x41,0x74,0x19,0xa3,0xeb, - 0xbb,0x97,0xcc,0x76,0xe8,0x5c,0x5e,0x13,0x6d,0x8a,0xdb,0x00,0xe4,0xb2,0xf6,0x97, - 0x84,0x5e,0x82,0x23,0xb7,0xb6,0x9e,0x75,0x27,0x1b,0xb2,0x80,0xa8,0xa4,0x90,0x62, - 0xd8,0x1f,0x6c,0x72,0x2b,0x8e,0x81,0x2b,0x8d,0x67,0x7c,0x2f,0x07,0x04,0x76,0xe1, - 0xca,0x28,0x85,0x29,0x58,0x5d,0xbc,0xe2,0xf3,0x57,0xc7,0x2d,0x7a,0x7e,0xea,0xc0, - 0x8f,0x26,0x13,0x2d,0xb2,0x6f,0x34,0x0e,0xd3,0x27,0xc6,0x7d,0xe4,0x91,0x7b,0x1b, - 0xfa,0x47,0xe3,0x69,0xf1,0x02,0x06,0x8d,0xd8,0x4e,0x65,0x24,0xd4,0xb1,0xd2,0xdf, - 0x04,0x72,0x68,0xea,0xa9,0xc3,0x16,0x2a,0xe8,0xa4,0x00,0x70,0xd0,0xa3,0xd0,0x07, - 0x4f,0xf2,0x29,0xbc,0x28,0x31,0xc9,0x8e,0x52,0x6d,0x37,0xfa,0x1b,0x06,0x7b,0xfb, - 0xbd,0xb8,0x21,0xc4,0xe0,0xa8,0x84,0xd4,0x32,0x03,0x84,0x62,0x74,0x77,0x42,0x3d, - 0x8e,0x04,0x97,0x58,0x6b,0x9c,0x9c,0x9d,0x1e,0x7d,0xd0,0x46,0x01,0xca,0xd8,0xb4, - 0x15,0x8d,0xbf,0x3e,0x83,0x74,0x1c,0x7f,0x4d,0xbd,0xab,0x3d,0x8c,0x11,0x16,0xef, - 0x44,0x5d,0x9d,0x1a,0xe9,0x88,0xc6,0x93,0xdc,0x3e,0x59,0x32,0x42,0x17,0xa0,0x23, - 0xc0,0xca,0xf3,0xdf,0xeb,0x4a,0x08,0x11,0x19,0x49,0xa9,0x10,0xb4,0xa5,0xf1,0x7a, - 0x0d,0x99,0xa7,0x80,0x46,0x99,0xba,0x83,0x7b,0x62,0x2d,0x87,0xd8,0x33,0xa6,0x49, - 0x52,0x03,0x7c,0x82,0x62,0xcb,0x9c,0x36,0xaf,0x39,0xca,0xab,0x6a,0x7b,0x8f,0x1e, - 0x53,0x3e,0x71,0xad,0x3e,0x4a,0x54,0x50,0x46,0x3a,0x43,0x45,0xed,0x09,0x63,0x4d, - 0xd1,0xa9,0x34,0xea,0x8e,0x34,0xaa,0xa0,0x33,0x4d,0x8d,0x2c,0x14,0x4c,0xf1,0xb0, - 0x04,0x25,0x78,0xb1,0x4b,0xc8,0x5f,0x27,0xbf,0x21,0x1a,0xed,0x4e,0x13,0xda,0x30, - 0x35,0x11,0x23,0x45,0xeb,0xf4,0x0c,0xeb,0x29,0x4a,0xf1,0x2a,0x77,0x54,0x3b,0x0c, - 0x1f,0xf7,0x47,0x55,0x5a,0x39,0xc7,0xf3,0x39,0x56,0xa0,0xcf,0x3e,0x7e,0x38,0x59, - 0xe9,0xb4,0x75,0x7e,0x22,0xae,0x81,0xaf,0x2b,0xab,0xf8,0x49,0x58,0x23,0x9a,0xe4, - 0x3c,0x86,0xc2,0x20,0xf0,0xb0,0x2c,0x48,0x9f,0x97,0x95,0x90,0xe5,0x80,0x11,0x40, - 0x7b,0x30,0x3c,0x89,0xe4,0xd6,0x63,0x74,0x05,0x5a,0xed,0xc8,0x53,0xbb,0xa7,0x61, - 0xd2,0xdf,0x30,0x2a,0x41,0xe3,0xe4,0xd3,0xd9,0xbb,0xdf,0xd7,0x91,0x8e,0x13,0x51, - 0x65,0x9d,0xf9,0x7c,0x38,0x3b,0x7f,0xf1,0xe1,0xf5,0xb9,0xf9,0xa1,0x6b,0x75,0xac, - 0x96,0xf9,0xa1,0xdd,0xb6,0xda,0x56,0x9d,0x1b,0x40,0x85,0x86,0xd8,0x66,0xe9,0x91, - 0xc7,0xf4,0xf9,0xfc,0x18,0xcd,0x28,0xca,0x6d,0xb5,0xd5,0x87,0x83,0x62,0x9c,0x16, - 0xd7,0x91,0xa7,0xc2,0x29,0xf2,0xb6,0x7b,0x8f,0xd8,0xf4,0x32,0x42,0x8f,0xf8,0xa0, - 0x81,0xac,0xee,0x27,0x29,0x3b,0x02,0x69,0x02,0x08,0x09,0xba,0x4a,0xb8,0x11,0x9e, - 0x0c,0xff,0x05,0xda,0x1d,0xfb,0xf3,0x70,0x0d,0x8a,0xad,0xd0,0x20,0x1c,0x0e,0x3a, - 0x14,0x2d,0x7c,0x52,0x81,0x1e,0x5d,0x32,0xec,0xc1,0x4a,0x2b,0xd4,0xe8,0x34,0x8f, - 0x69,0x67,0xe4,0x56,0xb9,0x9e,0x76,0xc6,0x17,0x79,0xc5,0x7d,0xfd,0xc0,0xaf,0x93, - 0x45,0xf1,0xc8,0xf4,0x12,0xe5,0x4b,0x2a,0x1f,0x31,0x4c,0xd9,0xe9,0x38,0xab,0x9c, - 0x3a,0xc2,0x10,0xb1,0x26,0x07,0xe2,0x1b,0xb4,0x8e,0xa2,0x6e,0xc9,0x37,0xbd,0xb2, - 0xbb,0x5d,0xb0,0xe5,0x61,0x27,0xc4,0xf2,0x7a,0xa9,0xe2,0xb2,0x6c,0x69,0x6f,0x5d, - 0xbc,0x67,0x9a,0xb0,0x23,0xf3,0xbb,0x13,0x96,0x69,0xc9,0xed,0x46,0xdc,0xe8,0x0d, - 0x22,0xe1,0x07,0x4d,0x41,0x0e,0x44,0x38,0x99,0xff,0x3b,0xa2,0x09,0x10,0x29,0xfb, - 0xef,0x0a,0x27,0x40,0x8d,0xff,0xbb,0xe3,0x09,0xc8,0x19,0xfe,0x5f,0x12,0x50,0x00, - 0x87,0xf3,0x6f,0x8f,0x28,0x90,0x1f,0xc4,0xff,0xbb,0x21,0x05,0xfe,0x9f,0x08,0x1a, - 0x20,0xdd,0x3f,0xda,0xcd,0x76,0x57,0xbb,0xe1,0xcb,0xa8,0x7c,0x91,0x3f,0xbb,0xda, - 0xcf,0xf1,0x4d,0x56,0x06,0x10,0x50,0x7c,0x02,0x2d,0xed,0x8c,0xe4,0x58,0x0a,0x78, - 0xa2,0xe1,0xd6,0xc3,0xeb,0xfd,0xf2,0x0a,0x06,0x87,0x17,0x40,0x7a,0x26,0xe6,0x31, - 0x10,0x0e,0xbd,0xb1,0x64,0x4a,0x9a,0x2d,0x6e,0x22,0xac,0xe9,0x1b,0xdd,0x6e,0x75, - 0x32,0xbf,0xa0,0x13,0x79,0xd4,0xef,0xd4,0x8a,0xf8,0xbc,0x63,0x84,0xd7,0x41,0xf9, - 0x48,0x74,0x8e,0x9e,0x14,0x64,0xdf,0x5c,0xcc,0xeb,0x64,0x79,0x8a,0xb1,0x76,0xf0, - 0x91,0xe4,0x0f,0xd0,0x95,0xf1,0x1a,0x1b,0x5e,0x09,0xf1,0xc7,0x77,0x46,0xfd,0x71, - 0xf1,0x6d,0x76,0x2f,0xb6,0x31,0xb2,0xf1,0x05,0x08,0xb5,0xf4,0xe3,0xc7,0xa2,0x0a, - 0x9f,0xfa,0x60,0xa3,0x64,0xeb,0xe3,0x71,0x79,0xad,0x6f,0xd7,0x13,0xaf,0x1c,0x4d, - 0x02,0x76,0xb9,0xe6,0x4b,0x42,0xe4,0x2d,0xea,0x93,0x25,0xee,0x89,0x77,0x98,0x44, - 0x34,0x2b,0xc0,0x95,0x66,0x3e,0xc2,0xc1,0x24,0x78,0x4f,0xc9,0x74,0xe9,0x04,0xef, - 0x3e,0xc3,0xef,0xda,0x7b,0x48,0x25,0x26,0xce,0xf7,0x1e,0xd6,0xe3,0xe2,0xc2,0x91, - 0x85,0xa9,0x01,0x07,0x77,0x82,0xca,0x4d,0xe0,0xc0,0xca,0x68,0x03,0x3b,0x11,0x11, - 0xeb,0x8b,0x51,0x7e,0x0b,0xd6,0x41,0x8a,0x53,0x59,0x78,0xb1,0xa3,0xa5,0x1f,0xd4, - 0xba,0xd0,0xd2,0x23,0x3f,0xe2,0xf2,0x08,0xfd,0x5c,0x6f,0x49,0xdf,0x46,0x0e,0x12, - 0x19,0x3b,0xd4,0x1a,0xbf,0xfe,0x64,0x50,0xb3,0xaf,0xf8,0x99,0x1a,0x9e,0x42,0x68, - 0x47,0x57,0xf8,0x3a,0x49,0x98,0x05,0x21,0x24,0xdb,0xff,0x0e,0x17,0x92,0x97,0x36, - 0x5c,0x74,0xdd,0xf7,0x82,0x20,0xf5,0x3c,0xac,0x6c,0x07,0x4f,0xc1,0x9c,0xda,0x86, - 0x56,0x1d,0xe4,0xa1,0x52,0xc0,0x8b,0xa1,0x9e,0xe3,0xa9,0xf1,0xa5,0x0a,0xda,0x0c, - 0x96,0x15,0xea,0xcc,0xda,0x97,0xeb,0x71,0x6b,0xd1,0x76,0xd5,0xee,0x9c,0xc4,0x7a, - 0x0c,0x35,0xf0,0xb2,0xcb,0x63,0x88,0x21,0xbb,0x56,0xdf,0xec,0x2a,0xde,0xf9,0x01, - 0x6a,0x27,0x96,0xcd,0x29,0x45,0x9f,0x13,0x91,0xd0,0xf5,0x82,0x94,0x1c,0x87,0xe5, - 0x18,0x83,0x79,0x7e,0xa9,0x8e,0x2b,0x6d,0xbc,0x49,0xe1,0x10,0xd6,0x13,0x3a,0x36, - 0xd2,0x0d,0x84,0xec,0xf8,0x37,0xba,0xbb,0x85,0x5b,0x68,0xd3,0xb3,0xa3,0x68,0xc0, - 0x81,0x15,0xca,0x9b,0xb4,0x18,0xc6,0xf0,0x29,0xc2,0x0d,0xfc,0xf9,0xc5,0xf1,0x42, - 0xec,0x64,0x06,0x7f,0xff,0xf6,0xc6,0xe9,0x02,0x08,0xb6,0x4e,0xea,0xdf,0x4a,0xbe, - 0x2f,0xa3,0x9e,0x2b,0xa0,0xc3,0xaf,0x83,0xba,0xa2,0x1c,0x03,0x1d,0xf2,0x8b,0x19, - 0xf1,0xe2,0x52,0x2b,0xae,0xc1,0xe2,0x72,0x85,0xdb,0x69,0x1a,0x9b,0xba,0xb8,0xe4, - 0x22,0x68,0x34,0x87,0x6b,0x4c,0xd7,0xbe,0x2c,0x11,0xa7,0xfd,0xa4,0x67,0x31,0x39, - 0xc9,0xab,0xee,0xf2,0x70,0x41,0x44,0xde,0x88,0x43,0xc7,0xf3,0x48,0xf5,0x4a,0xa5, - 0x2d,0xba,0x1d,0x07,0xa2,0x09,0xf2,0x6f,0x10,0xcb,0x83,0x82,0xea,0x8a,0x83,0xc0, - 0x5b,0x32,0x7c,0x6f,0xa3,0xcc,0x09,0x44,0x20,0x64,0xfd,0x3b,0x96,0x71,0x43,0x5d, - 0xc6,0x33,0x0a,0x7a,0x88,0xeb,0x18,0x2d,0xfc,0x95,0x17,0x4a,0xe5,0x46,0xe4,0x38, - 0xaf,0x12,0xa0,0x07,0xaf,0xae,0x46,0x93,0x83,0x73,0x7b,0xf4,0x6a,0x07,0x7f,0xa4, - 0x97,0xa9,0x24,0x61,0xcd,0xca,0x6c,0x2e,0x10,0xd5,0xb9,0x18,0x27,0x4c,0xb2,0x04, - 0x58,0x56,0xbc,0x46,0x74,0x97,0xd3,0x62,0xb9,0xd8,0x9b,0x78,0x2c,0xca,0x4c,0xdc, - 0x78,0xee,0xe2,0x35,0x29,0xa5,0x69,0x8e,0xd0,0x39,0x87,0x99,0xb9,0x21,0x5e,0xe9, - 0x84,0xb5,0x26,0x03,0x3e,0x5e,0xea,0x04,0xb1,0x85,0xef,0x12,0x38,0x69,0xb3,0x95, - 0x44,0x48,0xb9,0x5f,0xb8,0x23,0x82,0x74,0xaa,0xaa,0x38,0x3f,0x35,0xc8,0xb8,0x20, - 0x3f,0x70,0x3d,0xd2,0x84,0x26,0x85,0x29,0x1c,0x1d,0x3c,0x4a,0x54,0x4a,0xe2,0xb9, - 0xb2,0xa5,0x70,0x95,0xa2,0xe4,0xc8,0xf3,0xc4,0xfd,0x5e,0xf8,0x58,0xcd,0xb5,0xe7, - 0xd9,0x88,0x0a,0x3c,0x1a,0x24,0xf7,0xdc,0xbd,0x50,0x21,0x99,0xad,0xdc,0xa3,0xd9, - 0x73,0x54,0xd9,0x06,0x53,0xf5,0x2d,0xd0,0x09,0x1c,0x1c,0x24,0x1e,0xee,0x09,0x55, - 0x41,0x84,0x3f,0xc5,0x08,0x00,0xa3,0xbb,0x5c,0xf4,0xc2,0x58,0x94,0x60,0x37,0x39, - 0x40,0xd6,0x68,0x51,0xa4,0xe7,0xe2,0x91,0x2e,0x0e,0x20,0x30,0xba,0x4b,0x6b,0x32, - 0x0c,0x0b,0x0a,0xe4,0x1a,0x70,0xfc,0x2b,0xd4,0x8c,0x14,0x7f,0x52,0x04,0x71,0xa0, - 0x04,0xfe,0x38,0xaf,0x04,0xfe,0xf7,0xf4,0x4b,0xf1,0x39,0xa9,0x5f,0xe8,0xf3,0x18, - 0x3f,0xd2,0x2e,0x8b,0xfc,0x31,0x7d,0x22,0x4c,0xc2,0xde,0xbd,0x46,0x3e,0x18,0x78, - 0x6e,0x22,0x35,0xb7,0xd1,0x22,0xbe,0x93,0xa0,0xa6,0x7a,0xb5,0xd7,0x77,0x53,0xf6, - 0x49,0x86,0x80,0x02,0xd6,0x92,0x07,0x72,0x95,0x66,0x54,0x41,0x5d,0xf1,0xb1,0x2b, - 0x41,0x23,0xe9,0x67,0x15,0x09,0x16,0x6f,0x4c,0x71,0x31,0xe7,0x96,0x1e,0x03,0x91, - 0xb8,0x50,0x52,0x70,0x7a,0xa8,0xe0,0x14,0x5f,0xbd,0x13,0x51,0x87,0xf3,0x16,0x68, - 0x25,0x62,0x4f,0xf9,0x9d,0x2b,0x8a,0xb2,0x89,0x0e,0xbf,0x4e,0x39,0x34,0x29,0x85, - 0x29,0x0e,0xbc,0x0a,0x29,0x66,0xb7,0xf4,0x50,0xce,0xcb,0x41,0x2e,0x7a,0x7a,0xa7, - 0x18,0x2e,0x7b,0x7a,0x69,0xe0,0xe0,0x3c,0x17,0x08,0x60,0x48,0xf1,0x2e,0xa4,0x59, - 0xb4,0x11,0x90,0x99,0xf4,0x18,0x65,0x7b,0x0f,0x53,0x0c,0x19,0x26,0x09,0xb8,0x05, - 0x1e,0xc2,0xd2,0xb1,0x2e,0x85,0xe0,0x44,0x47,0x43,0xeb,0xd5,0x28,0x92,0x1c,0xaa, - 0xf2,0x76,0x74,0x85,0x70,0xf5,0x6e,0xaa,0xd9,0xf1,0x95,0x33,0x31,0x61,0x7f,0xcb, - 0x10,0x4e,0x78,0x95,0xf3,0x37,0x11,0xb0,0xf2,0x1d,0x42,0xc2,0x77,0xc8,0x66,0x08, - 0x8a,0x2a,0xda,0x11,0x13,0x50,0x9a,0x85,0x69,0x0b,0x8d,0x86,0x74,0xc7,0x5d,0xac, - 0x34,0xcc,0x81,0x26,0x42,0xf1,0x5c,0xcf,0xec,0x29,0xa0,0x14,0x9a,0xa4,0x8e,0x67, - 0x51,0x40,0xd1,0x7f,0x79,0xb4,0xec,0x3b,0x6e,0x65,0xc5,0x7f,0x0e,0x90,0xd8,0x02, - 0x2d,0x2c,0x8f,0xfa,0x85,0x8c,0x7f,0x4a,0x8b,0xbe,0x88,0x3c,0x10,0x44,0x92,0x24, - 0xec,0xef,0xec,0xb4,0x5f,0x76,0xac,0xf6,0xde,0xbe,0xd5,0xb3,0xda,0x44,0x36,0xb9, - 0xb5,0x9d,0xc0,0xab,0x0a,0x78,0x5b,0x3e,0x78,0xc0,0x27,0x94,0xf5,0xc2,0x64,0xf8, - 0xf4,0x30,0x1d,0xe1,0x56,0x2c,0x6e,0xf4,0x2f,0x42,0x11,0xcc,0x15,0x60,0x90,0x1a, - 0x18,0xfe,0x4b,0x0d,0x49,0xcb,0xd7,0x27,0xdd,0x18,0x63,0x62,0xa1,0xcb,0x89,0x2b, - 0xaf,0xaf,0x65,0x86,0x3f,0x47,0x44,0x84,0x4e,0x4d,0x84,0x62,0x29,0x05,0x4e,0x99, - 0x42,0xe1,0x76,0x31,0x58,0x47,0x74,0xed,0x8a,0xd0,0xa1,0xa0,0x33,0x83,0x32,0x80, - 0xf1,0x9a,0xc7,0x57,0x99,0x13,0xca,0xda,0xf7,0xea,0x5b,0xb5,0xf7,0xea,0x27,0xc1, - 0x78,0x41,0xa1,0x46,0x2f,0x9d,0xe4,0x8d,0xe7,0xe0,0xcf,0x9f,0xee,0xde,0x4d,0x1a, - 0x5b,0x62,0x77,0x6d,0x19,0x16,0x41,0xf0,0x3d,0x90,0x0b,0x0b,0x6f,0x81,0x02,0x2b, - 0xd8,0x42,0xb1,0x73,0x6b,0xcd,0x8b,0xf8,0xb0,0xa8,0x23,0x0a,0x52,0x90,0x5e,0xc0, - 0xaf,0xa3,0x00,0xb9,0xcd,0xcd,0xea,0x7e,0xb6,0xbd,0x4b,0x52,0xb6,0x9b,0xc5,0x36, - 0xe0,0xed,0xde,0xed,0x65,0x0f,0xcb,0x75,0x7b,0xec,0xa9,0x21,0x28,0x7d,0x71,0xc3, - 0x53,0xa0,0x01,0x8d,0x5e,0x3e,0xcc,0xf5,0x26,0x42,0x55,0xb0,0xae,0x9b,0x8b,0x33, - 0x4e,0x1b,0x3d,0x54,0xcb,0xce,0xe3,0xcb,0x74,0x00,0x15,0x91,0xc0,0x72,0x44,0x48, - 0x17,0x53,0x0f,0xcb,0xb2,0xbf,0x68,0x0d,0x43,0x3c,0xd5,0x21,0xe7,0xc7,0x72,0xb4, - 0x8a,0x3e,0x6e,0x71,0x58,0xcf,0x5c,0x0b,0x28,0x9b,0x5e,0xe9,0xd9,0x1a,0x97,0x16, - 0x84,0xe8,0x61,0xe1,0x45,0x4a,0x1c,0x9a,0x9d,0x0e,0xaf,0x7a,0x08,0xca,0x83,0x0a, - 0x9d,0xbd,0x8a,0x26,0xd4,0x61,0x8c,0x83,0x05,0x3b,0x18,0x97,0x97,0x1a,0x50,0xd8, - 0x0d,0x93,0x83,0x0d,0x1d,0x63,0xf0,0x0a,0x27,0xaf,0xc1,0x06,0x40,0x4d,0x3b,0x7b, - 0xf3,0xf1,0xfc,0xdd,0xc7,0x37,0xef,0x87,0xfa,0x8f,0xe2,0x7f,0x22,0x23,0x4e,0x86, - 0x4b,0x74,0x1c,0xeb,0xeb,0xba,0x49,0x17,0x92,0x27,0x7d,0xc2,0x36,0x73,0x66,0xc7, - 0x18,0xbe,0x24,0xfb,0x3a,0xf6,0x5c,0xf1,0x81,0xb6,0x9c,0x93,0xf8,0x6a,0xaf,0x27, - 0xbe,0xa5,0x7d,0xf4,0x8c,0x63,0xdf,0xa4,0x4d,0xf8,0x8e,0x33,0x89,0xa5,0xd9,0x51, - 0xa4,0x91,0x4f,0xaa,0xbc,0xcb,0x2f,0xd2,0x62,0x19,0x6e,0x4b,0xf9,0x56,0xfa,0x06, - 0xf1,0x3c,0xee,0xb7,0xcc,0xf1,0xf4,0xb2,0xef,0x2f,0x3c,0xcf,0x44,0x5f,0xab,0xfe, - 0xf2,0xc1,0x9c,0xb8,0x51,0x72,0x87,0x3f,0x38,0x28,0x61,0xdc,0xbf,0xf8,0x62,0xfa, - 0xa4,0xf4,0x42,0x69,0xd2,0x96,0xf1,0xbc,0x2a,0x82,0x0f,0x94,0x56,0xfb,0x4b,0xd4, - 0xe3,0xa9,0x0c,0xea,0xe1,0xf0,0xe3,0xc1,0x44,0x36,0x7d,0x0e,0x2b,0xe1,0x24,0x38, - 0x7d,0xfa,0x12,0x35,0xf0,0xf7,0x9b,0x30,0x18,0xcf,0xb0,0x63,0x8a,0x5d,0x2c,0xbf, - 0x44,0x20,0x0f,0xc8,0x47,0xda,0x9b,0xce,0x95,0x0b,0xbd,0x0f,0xec,0xc9,0xb1,0x1d, - 0xc2,0xa6,0x75,0x78,0xac,0x04,0x2a,0x01,0x01,0xf4,0xf9,0x27,0x35,0x4c,0x56,0x7a, - 0x18,0x6c,0x4c,0x17,0x3e,0x9f,0x5b,0xfc,0xd0,0x88,0x8d,0xa5,0xd8,0xee,0x29,0xc5, - 0x00,0x69,0x38,0xba,0x63,0xbb,0x5e,0x10,0x41,0x81,0x07,0xa5,0xbc,0x5a,0xe1,0x28, - 0x8a,0xec,0x3b,0x10,0x5d,0x82,0x24,0x40,0x01,0xc7,0x8a,0x3d,0x24,0xfb,0x68,0x4f, - 0x6c,0x54,0xb7,0x85,0x72,0x6b,0x6c,0xa8,0xed,0x91,0x44,0xd0,0x98,0x1b,0x4b,0x44, - 0x8a,0x64,0xf8,0x43,0x43,0x7f,0xce,0x42,0x82,0x31,0x48,0x2c,0x24,0x7d,0xc7,0xfc, - 0x1c,0xd7,0x70,0x0e,0xdf,0x19,0xbd,0x82,0xdd,0xd2,0x20,0x1d,0x19,0xca,0x91,0x66, - 0x89,0x00,0x44,0x7b,0x53,0x62,0x7d,0xc5,0x37,0x4b,0xe0,0xdf,0x21,0xac,0x8d,0x4c, - 0x95,0xdd,0x35,0x8c,0x65,0x52,0xa6,0x7a,0xa2,0xa1,0x07,0xb3,0xb3,0xd7,0x6a,0xa9, - 0x83,0x03,0xf9,0x4e,0x99,0x2d,0x7a,0x14,0xfa,0x97,0x90,0x80,0xef,0x7e,0xa1,0x12, - 0xd6,0xd8,0xb9,0xd8,0x7c,0x75,0xa0,0x7f,0xd9,0xb9,0x34,0xd3,0x0e,0xc6,0xb2,0xf8, - 0x52,0xdf,0xd4,0xfb,0x3a,0x9d,0xd4,0xea,0xa6,0xfe,0x0a,0x7f,0x7b,0x09,0xfe,0x3c, - 0xc0,0x9f,0x18,0x6d,0xc2,0xdc,0xd2,0xb7,0xe0,0xe7,0x9f,0x8b,0x00,0x3e,0x1e,0x2e, - 0xc6,0x5f,0x1e,0xf2,0x80,0x29,0x19,0xd0,0x41,0xa0,0x34,0x96,0xb4,0x7b,0x48,0x03, - 0x1d,0xd6,0x51,0x78,0x28,0x87,0x49,0x47,0x09,0x0c,0x18,0x04,0x45,0x98,0x60,0xce, - 0x66,0xaf,0x1b,0xc6,0x60,0xc3,0x9d,0x36,0x9e,0x51,0x2b,0x06,0x0f,0x57,0xec,0x4a, - 0x00,0xc4,0x90,0x92,0x2d,0x92,0x58,0x87,0xca,0x21,0x04,0xd4,0xc9,0x32,0xb0,0xe0, - 0x21,0x2b,0xbf,0x7d,0xb5,0x08,0x76,0xad,0xae,0x1a,0x97,0xfb,0x05,0x89,0x62,0x5f, - 0x47,0xcb,0xbf,0x28,0x13,0x97,0x87,0x27,0xce,0x19,0x60,0x3f,0x70,0xdb,0x28,0xa1, - 0xf6,0x85,0x1a,0x6c,0xd4,0xd6,0x22,0xed,0x42,0x37,0x1b,0xe5,0x8e,0x8c,0x6d,0x9d, - 0xb5,0x8d,0x74,0x78,0x86,0x9c,0x02,0x45,0xfa,0x6f,0xc0,0xa7,0x02,0x6f,0x68,0x20, - 0x4a,0xfe,0xe1,0x44,0x0d,0x01,0xe2,0xe9,0xcd,0x10,0x30,0x64,0x7a,0x73,0x7f,0x0f, - 0x5b,0x74,0x3e,0xdc,0xf9,0x67,0xe3,0xfa,0xf0,0x8f,0xc9,0xf6,0x1f,0x96,0xfc,0xa7, - 0x71,0xd8,0xa7,0xbf,0xc6,0xa1,0xb1,0x63,0x39,0xb7,0xce,0xb8,0x31,0xbd,0x31,0x04, - 0x18,0x87,0xf3,0xc3,0xf9,0x45,0xfb,0x4b,0xbf,0x41,0xf5,0x17,0xfe,0x95,0x8f,0xf1, - 0x64,0xd1,0x60,0x86,0x7a,0x11,0x83,0x7f,0xa7,0x09,0x42,0x48,0xa3,0x79,0xff,0x03, - 0x54,0xc7,0x00,0x47,0x58,0xdd,0x88,0xb7,0x87,0x3a,0xa6,0xeb,0x03,0x4d,0xf9,0xdf, - 0xce,0x8e,0xf6,0xe9,0xfc,0xe8,0xeb,0xf1,0x2f,0x47,0x1f,0x81,0x96,0x7e,0x3d,0x3f, - 0xfa,0x79,0x38,0x72,0x12,0x1b,0x0b,0x6e,0x90,0xb7,0x3e,0x35,0x87,0x49,0x95,0xed, - 0x61,0x86,0x68,0x10,0x5a,0xb2,0x35,0xaa,0x4b,0x8e,0x75,0xc2,0x2a,0x6f,0x62,0xf0, - 0x7f,0xd4,0x25,0x37,0x04,0xaa,0xc3,0xcc,0x47,0x0b,0xd7,0x9b,0x1c,0xc6,0x00,0xc4, - 0x86,0xbe,0x2d,0xbf,0xb7,0x75,0x43,0xef,0xc7,0x39,0xb8,0xd9,0xa1,0xdb,0xc0,0x40, - 0x6d,0x66,0x10,0x26,0xb0,0x57,0x36,0xf0,0xcf,0x10,0xff,0xb9,0xbf,0x5f,0x3e,0x30, - 0x9e,0xe1,0x17,0x50,0x85,0xf1,0xcc,0x31,0xb2,0x9f,0x28,0xb8,0x35,0x29,0x26,0x08, - 0x0c,0x0d,0x86,0xe5,0x7e,0x3a,0xd3,0x28,0x23,0x46,0x0b,0x07,0xf0,0xa8,0x5f,0xce, - 0xcf,0x4f,0xb4,0xa3,0x93,0x77,0xda,0xcf,0x6f,0xce,0x63,0xcd,0x1e,0x47,0x01,0x48, - 0x61,0x31,0xe0,0x08,0x5e,0x8c,0xc3,0x76,0xa9,0xad,0x84,0x77,0xf8,0xe6,0xa6,0x90, - 0x90,0x8f,0x46,0xb0,0x8c,0xc7,0x8c,0xe9,0x9e,0x13,0x89,0xc5,0x1c,0x27,0xde,0x10, - 0x4f,0x54,0x0b,0xb9,0x80,0x02,0xd4,0x08,0x46,0xe7,0xb4,0xbd,0x21,0x94,0x12,0x3f, - 0x07,0x1b,0xd5,0xc4,0x03,0x4b,0xd8,0xd8,0x46,0x03,0xa8,0x85,0xda,0x3f,0xe1,0x92, - 0x94,0x9a,0x9c,0x64,0x3c,0x53,0x60,0x62,0x61,0xb8,0x8d,0xac,0x15,0x1c,0x13,0x8c, - 0x3e,0x12,0xae,0x7e,0xb0,0xc7,0x7a,0xad,0xb6,0xb1,0x44,0x04,0x7e,0x8f,0x0f,0x43, - 0xc0,0xa0,0x92,0x19,0xde,0x8a,0xc2,0x01,0xbf,0x89,0x22,0xa0,0xc0,0x3a,0x72,0x48, - 0x20,0x50,0xb2,0x87,0xc8,0xfa,0x57,0x8c,0xe3,0x01,0x48,0x62,0x57,0xca,0x00,0xb9, - 0xe5,0xe0,0xca,0x28,0x35,0xb1,0xf0,0xd1,0x5f,0x9a,0x1c,0x5a,0x90,0x7c,0xdd,0xf1, - 0xd1,0xb2,0x3c,0x96,0x46,0x9c,0x14,0x8d,0xe3,0xaa,0x3d,0x14,0x07,0xfd,0x2f,0x6e, - 0xfa,0x19,0xb6,0xbd,0xb9,0x29,0xc7,0xfe,0x6c,0x38,0xec,0xb4,0x3a,0x02,0xc6,0xce, - 0x30,0xeb,0xed,0x5f,0xf8,0xf8,0x61,0x10,0xdd,0xdf,0x37,0x74,0x5a,0x46,0x7d,0x5b, - 0x56,0x01,0xda,0xe3,0xc8,0x99,0xcb,0x34,0x48,0x89,0x9c,0x3f,0x41,0xd4,0xf8,0x17, - 0xff,0x85,0xef,0x2b,0xe7,0x0e,0xbe,0xe0,0x5f,0x01,0x0b,0x47,0x81,0xef,0xbf,0x70, - 0x7c,0xe2,0xbf,0x0c,0x0f,0xc3,0x00,0x50,0x9e,0x80,0x8e,0xaf,0xfa,0xa4,0x44,0x3b, - 0x45,0xcf,0xe5,0xdc,0x01,0x85,0x67,0xd2,0xd7,0x4f,0x3e,0x9d,0x9d,0xeb,0x26,0x3f, - 0xb7,0x12,0xf7,0x97,0xba,0x20,0x55,0xcd,0x73,0xa0,0x6b,0x40,0x3b,0x30,0x64,0x86, - 0x88,0xd1,0xb8,0x83,0x50,0xd6,0x1f,0xa8,0xc1,0xfe,0x7f,0x9e,0x7d,0xfa,0x68,0xc5, - 0xc4,0x02,0xdc,0xe9,0x5d,0x83,0x3a,0xc9,0x11,0xec,0xf9,0xd5,0xa9,0xf3,0x27,0x50, - 0x5f,0x01,0x0e,0x9b,0xc0,0xf1,0xd9,0xf5,0x93,0x7d,0x62,0x93,0x8d,0x7d,0xde,0xf6, - 0x02,0x4f,0xc7,0xd1,0x5d,0x98,0x04,0x9b,0x9b,0xfc,0x17,0xc9,0xf5,0x29,0x45,0xcf, - 0xf9,0x07,0xdd,0x60,0x31,0xaa,0x93,0x1b,0x36,0xb4,0x41,0x1b,0x7e,0x0a,0x40,0x26, - 0x46,0x30,0x6c,0x0d,0xdc,0x57,0xfb,0x03,0x77,0x7b,0xdb,0xb0,0x2f,0xdc,0x2f,0xc3, - 0x0f,0x30,0x57,0x8b,0xce,0x04,0x1a,0xf4,0x93,0x63,0xf2,0x34,0x8c,0x1f,0x3b,0xbb, - 0x7b,0xd9,0x1a,0x17,0x19,0xf7,0xdc,0x0e,0x99,0x6d,0xdb,0x19,0x27,0x1b,0xc1,0x44, - 0xb8,0x78,0x63,0xf4,0xaa,0xbd,0x77,0xa8,0xb7,0x00,0x3a,0x40,0x55,0x47,0x56,0x12, - 0x08,0x56,0xd8,0xde,0xa3,0x75,0xb0,0x30,0xa8,0x77,0x43,0xd7,0x8d,0x02,0x61,0x00, - 0x2c,0x7b,0xeb,0xd8,0x28,0x94,0xc4,0x08,0x15,0x10,0x1d,0xb6,0x2e,0xe4,0x49,0xde, - 0x17,0x50,0x3f,0x60,0x12,0x6f,0x6c,0x15,0x7f,0x1d,0x0f,0x8a,0x39,0x9e,0xc2,0xa1, - 0x99,0x0b,0x36,0x58,0xac,0x36,0x9f,0x35,0x20,0x09,0xc5,0xb2,0xcd,0x8f,0x74,0x5a, - 0x0a,0x15,0x2c,0x6c,0x10,0x36,0x2b,0x26,0x1b,0x86,0x40,0x0b,0xa2,0xdf,0x78,0x65, - 0xe0,0x18,0x44,0x26,0x92,0x29,0x4a,0x57,0x92,0x78,0x31,0xd2,0x42,0x46,0xfa,0x6b, - 0x8d,0xce,0x1b,0xed,0xce,0xfe,0x3d,0xc2,0x13,0xfb,0x83,0x59,0xe9,0x56,0x3e,0x3c, - 0x4f,0xcd,0xcc,0x56,0x4d,0x2c,0x4e,0xac,0x92,0x34,0x6b,0x3c,0x70,0xf3,0x02,0x68, - 0xea,0xf1,0x7f,0x2d,0xf4,0xa0,0x0f,0xd0,0x50,0xde,0xb3,0x1f,0x00,0x34,0x9a,0x8a, - 0xcc,0x87,0x20,0x35,0xef,0x75,0xf3,0x2d,0xe6,0x8e,0xcd,0x57,0x2e,0x48,0x8e,0xa5, - 0x2b,0xad,0x6e,0x1c,0x6a,0xfa,0xdf,0x7c,0xdc,0xae,0x6f,0xf4,0xd7,0x6d,0xd3,0xd2, - 0x79,0xb9,0x71,0x81,0xf3,0x41,0x75,0x8d,0x95,0x90,0xce,0xe9,0x02,0x42,0x16,0x82, - 0x64,0xd6,0x35,0x24,0xc7,0xf0,0xdc,0x73,0x7b,0x04,0xb8,0xb3,0xf5,0x1c,0xa3,0xc2, - 0x89,0x27,0xd4,0x2e,0xd4,0x98,0x6b,0x00,0xb1,0x01,0x54,0xe5,0x92,0x06,0xff,0x91, - 0x22,0xa5,0x18,0x15,0x9f,0x57,0x19,0x45,0xc1,0x95,0x86,0x42,0xbb,0x05,0xea,0x73, - 0xcf,0xa8,0x77,0xe4,0x44,0x31,0x3c,0x7b,0x5b,0x35,0x02,0xba,0x86,0x22,0x86,0x20, - 0xca,0x1a,0xe2,0x6f,0x69,0x10,0x54,0xb6,0x76,0x14,0x0c,0xbe,0xee,0xea,0x02,0xf4, - 0x86,0xce,0xca,0x12,0xc5,0xc3,0xc2,0x47,0xfa,0x53,0x1e,0xbb,0x31,0x72,0xf8,0xa5, - 0x3f,0xe5,0xe9,0x9b,0x58,0x3c,0xb5,0xb5,0x10,0x2f,0x5c,0x93,0xe7,0x15,0x54,0xcb, - 0xa2,0x37,0x06,0xc2,0xb2,0xf7,0xfe,0xe8,0x23,0xe2,0x8b,0xe8,0x3c,0x8b,0xf5,0x5f, - 0xe8,0x9c,0x23,0xff,0x43,0x87,0x1c,0xdb,0xde,0x17,0x61,0xef,0xb3,0xdb,0x03,0x7a, - 0x01,0xdf,0x28,0xc4,0x72,0xa1,0x11,0x8e,0x80,0xa9,0x94,0x54,0xe3,0x65,0x1a,0x96, - 0x0b,0xf3,0x8b,0x7e,0x39,0xff,0x00,0x5a,0x71,0x31,0x5c,0x72,0x29,0x76,0x66,0xa9, - 0x11,0x8a,0x17,0x69,0x58,0xd2,0xcc,0xa3,0xf0,0x7e,0x11,0x8e,0xf4,0x21,0x47,0x85, - 0xf9,0x94,0x7f,0xb9,0x81,0x7c,0x50,0xdf,0x81,0x7f,0x77,0xc4,0x0d,0x83,0x22,0x87, - 0x47,0xd9,0x0d,0x56,0x0a,0x75,0xf2,0x61,0x4c,0x7f,0x06,0xb8,0x70,0xa4,0x9a,0x43, - 0x02,0xfe,0x18,0x64,0xa8,0x3a,0x7c,0xf6,0x0c,0x0a,0xc1,0x8f,0x41,0xba,0x71,0x28, - 0x09,0x06,0x35,0xd8,0x50,0x29,0x04,0xa5,0xe2,0xd7,0xd7,0x10,0x3f,0x29,0xb3,0x44, - 0xe9,0xa8,0x90,0x4c,0xfd,0x1a,0xcb,0x64,0x6c,0x3b,0xa7,0xcb,0x53,0x39,0x4a,0xf9, - 0x2a,0x4b,0x53,0x83,0xb9,0x0d,0x4d,0x85,0x28,0xe5,0xab,0xbc,0xf5,0x42,0x85,0xa8, - 0xde,0x19,0x5a,0xe8,0x94,0x66,0xc8,0x62,0x37,0x10,0x84,0x7d,0x88,0xa2,0x69,0x68, - 0x8f,0x5c,0xcf,0x4d,0x5c,0x07,0x04,0xd8,0x16,0x57,0x24,0xdd,0x7e,0x98,0x4d,0xfe, - 0xb0,0x01,0xf0,0xc0,0x00,0x2a,0xce,0x57,0xca,0xba,0xbf,0x87,0x0e,0x31,0xae,0xd5, - 0x3c,0x4d,0x68,0x19,0xfd,0x16,0x11,0x96,0x18,0xe9,0xf1,0xd7,0xf1,0x7c,0x12,0x1f, - 0xb4,0x8c,0xe3,0xf7,0xef,0xbe,0x7e,0x38,0xfa,0x7d,0x98,0x25,0x52,0x07,0xa8,0x6a, - 0x08,0x4d,0x63,0x20,0x25,0x6d,0x48,0xa1,0xbf,0x5f,0x61,0xbf,0x3b,0x32,0x87,0x4e, - 0x57,0x62,0xfa,0x93,0x16,0x46,0xdf,0x7c,0x2c,0x8c,0x7f,0x29,0x91,0xf0,0x45,0xbc, - 0xbb,0x97,0xc7,0xcb,0x98,0x22,0x24,0x42,0x21,0x19,0x02,0x31,0x2d,0x8c,0xaf,0xf0, - 0x15,0xcb,0x62,0x2f,0x20,0xfd,0xff,0x08,0xc2,0x5b,0xa6,0x1b,0xc9,0x04,0xee,0x8f, - 0x29,0xd5,0x68,0xc8,0x8d,0xf0,0x33,0x7c,0xc6,0x60,0x54,0xa1,0x61,0xcb,0xbd,0xcf, - 0x10,0x41,0x1c,0x03,0xd5,0x92,0x0f,0xc6,0x8d,0xe5,0xa8,0xb0,0x05,0xdf,0x9c,0x7f, - 0x3e,0xd1,0x73,0xcd,0xb0,0xba,0xcf,0xc5,0x1f,0x50,0x00,0x2a,0xd6,0x81,0xdd,0xad, - 0x3f,0x88,0xc9,0xc8,0x37,0xf6,0x6a,0x09,0x50,0x41,0x32,0x19,0x28,0x5a,0x8f,0x5c, - 0xe1,0x6c,0xbb,0x08,0x23,0x8f,0x5e,0x21,0x6c,0x0b,0x45,0x3f,0x33,0x03,0x3d,0x3c, - 0x18,0x7d,0xf5,0xb3,0x42,0x90,0x0e,0x79,0x9b,0x89,0x42,0xc3,0x50,0xfe,0xba,0xbf, - 0xbf,0xf8,0x32,0x10,0xec,0xa0,0x08,0x1f,0xd5,0x17,0xe0,0x21,0x55,0xf8,0x9e,0xa5, - 0xdb,0x33,0xa7,0x3c,0x70,0x81,0x65,0x16,0x55,0xf5,0x01,0x07,0x51,0x18,0xbb,0xc3, - 0xe2,0xbc,0x63,0x89,0xeb,0x7d,0x20,0xc8,0x0b,0x1d,0x63,0x59,0x87,0x10,0xba,0xe2, - 0xec,0x3a,0x05,0xe2,0xea,0x4c,0xb4,0x26,0x3d,0x6f,0x75,0x87,0xb1,0x5c,0x06,0x8a, - 0xbe,0x44,0x6f,0xbe,0x74,0x5a,0x64,0x4a,0x79,0x28,0x29,0xd9,0x37,0x8d,0x6b,0x63, - 0x79,0xa1,0x3f,0x97,0x6f,0x1a,0x9a,0xf8,0x53,0x3c,0x6b,0x47,0xbf,0x31,0x5a,0xeb, - 0x97,0xb2,0x28,0xe2,0x4e,0x70,0x6c,0xf0,0x6f,0xf5,0xaa,0x42,0x47,0x3f,0x40,0xcb, - 0x2b,0x50,0x2f,0xb5,0x96,0xa0,0xe8,0x5e,0x51,0x0e,0x98,0x2c,0x73,0xeb,0x01,0xeb, - 0xc9,0x91,0xd3,0xb4,0xa3,0x39,0x5e,0x13,0xbd,0x23,0xea,0x0f,0xf9,0x1a,0xd1,0x5c, - 0xb4,0xe3,0x33,0x43,0xc0,0x97,0x0d,0x5d,0xb6,0xe2,0xd3,0x9b,0x79,0xc8,0x3b,0x36, - 0x16,0x21,0x6e,0x59,0x3c,0x51,0xfd,0x09,0x3d,0x1f,0x0a,0xb3,0x17,0xab,0x44,0x2b, - 0xd6,0xc8,0xa0,0x60,0x30,0xf2,0x2a,0x0f,0x22,0x1a,0x38,0xbb,0x37,0x78,0x26,0xf8, - 0x9e,0x82,0x2e,0xc0,0xee,0x93,0x4f,0x0f,0x66,0x32,0xba,0x73,0x8d,0xf2,0xd9,0x75, - 0xe9,0xf4,0x50,0x6c,0xcc,0xc4,0x1f,0x66,0xad,0xe2,0xe1,0x2f,0x6c,0xce,0xc4,0xb7, - 0xe4,0x3b,0xb0,0x43,0xb4,0xb1,0x0c,0xb2,0x12,0x18,0xde,0xb7,0xb0,0xe8,0x40,0x21, - 0x58,0x9d,0xe5,0xcd,0x20,0x96,0xec,0x2f,0xe8,0x52,0x1b,0x55,0xca,0xd4,0x52,0x52, - 0xf3,0x7e,0x36,0x18,0x14,0x73,0x0d,0x8b,0xfc,0xe9,0x40,0xcd,0x32,0x36,0xca,0x5a, - 0x74,0x51,0x19,0x2e,0x69,0xac,0x62,0x7f,0xc6,0x7d,0xa9,0x68,0x9a,0xff,0xea,0xff, - 0xeb,0xa1,0xaa,0xb5,0x5b,0x00,0x63,0x0e,0x32,0x64,0x76,0xa2,0xfd,0x78,0x6b,0xa1, - 0x8a,0x0e,0xe8,0x0c,0x6b,0x96,0xf2,0xc3,0x02,0xe0,0x94,0xb1,0x22,0xc8,0xd4,0xbd, - 0x47,0xbb,0x75,0x15,0x88,0x6f,0xad,0x54,0x59,0xe6,0x87,0x21,0xc5,0xee,0x22,0xd9, - 0xb6,0x4c,0x73,0x2a,0x46,0xb9,0x72,0x01,0x95,0x5d,0x4b,0xbd,0xe8,0x52,0x75,0x4e, - 0xb1,0x32,0x73,0xd5,0x5b,0x92,0x0e,0x9d,0xae,0x34,0x3a,0xdf,0x98,0xcb,0x12,0x05, - 0x53,0xe1,0xc0,0x03,0x50,0xa9,0x4f,0xc5,0x90,0x73,0x5a,0xf2,0x78,0x7a,0x09,0xba, - 0x6c,0xe3,0xca,0x58,0xe2,0x1e,0x03,0xbd,0x13,0xf4,0x82,0xff,0x0d,0xc4,0xe3,0x7f, - 0x93,0x42,0x90,0x08,0x99,0x4e,0x84,0x15,0xe5,0x68,0x92,0x8c,0x27,0xa6,0x08,0x5b, - 0x03,0xac,0x7a,0x7a,0xc9,0x22,0xfa,0x90,0x3f,0xcc,0xb9,0x19,0x0d,0xc7,0xcc,0xf2, - 0xcd,0x3f,0xe1,0x17,0xca,0x25,0xf7,0xf7,0x4b,0x36,0xc9,0xa3,0xbd,0xfd,0x06,0x12, - 0x51,0x06,0xa1,0x05,0x6d,0xcc,0x87,0x57,0x16,0xf9,0xae,0x36,0x76,0xfe,0x89,0x45, - 0x1b,0x17,0xed,0xe6,0xcb,0x2f,0xc6,0x1f,0x56,0xe3,0x8f,0x9b,0x6d,0xe3,0x87,0x1d, - 0x50,0xeb,0x96,0x6c,0xc5,0x6b,0xfc,0x69,0x09,0x7e,0x7e,0xf1,0xc5,0xb8,0xd8,0x46, - 0x93,0x5e,0xb3,0xfd,0x85,0x0c,0x5b,0x58,0xe0,0x7a,0x18,0x5f,0xcc,0x2f,0x3a,0x5f, - 0xbe,0xc8,0xf3,0xb2,0xeb,0xe1,0x10,0xad,0xef,0x87,0xba,0xde,0x17,0x1a,0xf2,0x35, - 0xcc,0x9d,0xef,0x5f,0xe2,0x94,0x37,0xf0,0xde,0x31,0x47,0x49,0xee,0xa7,0xd8,0x8b, - 0x9f,0x03,0xca,0x28,0x44,0x32,0xce,0x8a,0xa4,0x19,0x5f,0x05,0x03,0x07,0xe4,0x28, - 0xd4,0xc0,0x30,0xbf,0x55,0x15,0x20,0x5d,0x29,0x8f,0x71,0x6d,0xfb,0x79,0x73,0x76, - 0x64,0x41,0xa2,0xc1,0x03,0xc0,0xd8,0xb4,0xe5,0xec,0xc0,0x37,0x44,0xf5,0xe4,0xb6, - 0x9c,0x9d,0xdc,0x8a,0xca,0xf6,0xb4,0x9c,0x69,0x4f,0x65,0x55,0x19,0x90,0xaf,0x54, - 0x44,0x64,0x88,0x46,0x92,0xba,0x62,0x89,0x2c,0xc6,0xcd,0x61,0xc0,0xb9,0x6c,0xba, - 0xf0,0x75,0x88,0x97,0xf2,0xfa,0xe4,0x46,0xc5,0x2d,0xe5,0x22,0xbd,0x65,0x45,0x39, - 0x41,0x2d,0xbd,0xa1,0x14,0x57,0xe2,0xab,0x65,0x55,0x20,0xf1,0xeb,0xea,0x6a,0x14, - 0xd1,0x29,0xad,0x00,0x1f,0xc7,0x84,0xe5,0x0b,0x07,0xc8,0x94,0x28,0xa8,0x06,0x3e, - 0xcb,0x9a,0x56,0x52,0x2b,0xda,0xe6,0x20,0x38,0xca,0xd8,0x29,0xa1,0x5c,0x30,0x0b, - 0x1b,0x52,0x02,0x1b,0x65,0x01,0x12,0xdc,0x1a,0xc5,0xb2,0x32,0x8a,0x47,0x7d,0x95, - 0xaf,0x5c,0xa2,0x5c,0x33,0x0d,0x9f,0xb1,0xa2,0xae,0x2c,0x23,0x6b,0xab,0x81,0x28, - 0xb2,0x19,0x61,0xea,0x57,0x4e,0x15,0xe5,0x8a,0xb1,0x6b,0xca,0x28,0x45,0x05,0xbe, - 0xca,0x02,0xf9,0xd1,0x3d,0x5a,0x9b,0x07,0x58,0xd3,0x46,0x7a,0x50,0x20,0xaa,0xa5, - 0xdb,0x26,0xbb,0xe8,0x22,0x1b,0xbc,0xa1,0xcf,0x41,0x96,0x8b,0x2c,0x20,0xcb,0x84, - 0x2f,0x35,0x2f,0x75,0x3f,0x57,0x4a,0xc8,0x34,0xd1,0x45,0xc1,0xdd,0xbf,0x30,0xf0, - 0x1b,0x8b,0xf3,0xbf,0x8a,0xfc,0xfb,0xfb,0xb6,0x1c,0xb4,0x1a,0x06,0x42,0xd6,0xfa, - 0x53,0x24,0x0c,0xb2,0x12,0x14,0x3c,0x21,0xcb,0xc7,0x4f,0xb5,0x01,0xa1,0x14,0x66, - 0x05,0x38,0xa1,0xb4,0xab,0x72,0x77,0xbd,0xb3,0xd2,0x22,0xa5,0x8c,0x9a,0xe9,0x05, - 0xeb,0xac,0x2c,0x7c,0x55,0x37,0xab,0x50,0x97,0x3f,0xe1,0x43,0xc9,0x89,0xd4,0x9c, - 0xe8,0xb6,0xa6,0x9b,0xba,0x55,0xff,0xd3,0x2a,0x2e,0x74,0xe1,0x1e,0x72,0xd6,0x76, - 0x9a,0x56,0x3d,0xc2,0x8a,0xbb,0xa6,0xa5,0xbe,0xd2,0x32,0x5f,0xab,0x7b,0x4d,0x42, - 0xb5,0xbf,0x24,0xcc,0x2d,0x23,0xc5,0x8a,0x50,0x56,0x11,0xbf,0x95,0xfe,0x39,0xc8, - 0x42,0x96,0x4f,0xdf,0x92,0x36,0xcb,0x0b,0x8f,0x0a,0x0c,0x45,0xd2,0x20,0x57,0x40, - 0xde,0x34,0x2c,0x8d,0x5c,0x16,0xf8,0xca,0x05,0xe4,0xb0,0xe9,0xe2,0x9f,0x82,0x18, - 0xf0,0x59,0x82,0x4e,0xe1,0xea,0x5e,0xbe,0xf4,0xd7,0x34,0x23,0x33,0xe2,0xe3,0xd6, - 0x52,0x0f,0x5a,0x3d,0x14,0x0a,0xc8,0xda,0x88,0x6a,0x89,0x97,0x9e,0x3e,0xa6,0xf7, - 0x10,0x85,0x6d,0x4c,0x43,0x23,0x2a,0xa6,0x39,0x39,0x8a,0xbf,0x91,0xe5,0x92,0xcc, - 0x90,0x57,0x3a,0xf0,0x74,0x14,0x1a,0x35,0xaf,0x57,0x34,0x9f,0xb5,0x3b,0x6c,0x5c, - 0x63,0x16,0x9f,0xd3,0x91,0xf8,0x26,0x5b,0x1d,0x5e,0xe7,0xda,0x15,0x21,0xed,0x8f, - 0xd3,0x13,0xf8,0x37,0x13,0x10,0x5e,0x1a,0x63,0x3e,0x87,0x17,0x07,0x26,0xf2,0x4b, - 0x35,0xed,0xc1,0xb2,0xc6,0xc3,0x4f,0x23,0x0c,0x4e,0xa1,0xd8,0xe0,0x41,0xf5,0xfc, - 0x74,0xe3,0x9f,0x44,0xf8,0x28,0x09,0x82,0x0a,0x4f,0xb8,0xa0,0x20,0xdb,0xe5,0x45, - 0x33,0x3c,0x8e,0xd8,0x54,0x28,0x92,0xb1,0xb1,0xb9,0x99,0xcf,0xbd,0x50,0x72,0xbf, - 0x80,0x66,0x17,0x33,0x7d,0xc8,0x25,0x43,0xa5,0x67,0x8f,0xb4,0x4e,0x42,0x2d,0x94, - 0xcb,0x57,0x27,0xeb,0x33,0xc0,0x47,0x3a,0x76,0x90,0x50,0x53,0xd1,0x3b,0x97,0x63, - 0x0a,0xca,0xd9,0x35,0x2e,0x09,0x2c,0x4b,0xb3,0x29,0xf4,0xb1,0xa2,0x43,0x2a,0x5c, - 0x37,0x61,0x39,0x34,0x5d,0x97,0x36,0x5c,0x2e,0x35,0x39,0x83,0x29,0x0f,0xd7,0x83, - 0xe5,0xe1,0x0a,0x50,0xf6,0xab,0x00,0x39,0x50,0xc6,0xcd,0x1d,0x55,0x03,0xfc,0xaf, - 0xc1,0x51,0x96,0x7a,0x1c,0x9a,0x42,0x71,0x79,0x90,0x56,0x02,0x75,0x68,0x35,0xb8, - 0xc0,0x16,0x89,0xc7,0x96,0xe7,0x61,0x43,0x60,0x2c,0xc8,0xe9,0x71,0x01,0x86,0x15, - 0x27,0x07,0x57,0x62,0x0d,0xae,0x87,0x85,0x69,0x5d,0x7d,0x61,0x07,0x9a,0xe1,0xb5, - 0x32,0x9c,0xab,0x2f,0xb9,0x93,0x8e,0xfa,0xb3,0x08,0xde,0xbe,0xf2,0xcc,0xe7,0x0a, - 0x00,0x08,0x1d,0x29,0x1b,0x7c,0x50,0x79,0xc8,0x42,0x1d,0xea,0xdc,0xaf,0x30,0x4a, - 0x40,0x43,0xfc,0x09,0xc5,0xe8,0x07,0x8c,0x01,0xf6,0x37,0x81,0x0d,0x24,0x4d,0x7c, - 0xe7,0x43,0xc9,0x61,0x95,0xa9,0x0a,0x00,0x63,0x7e,0x36,0xa0,0x0e,0x04,0xca,0x99, - 0xd7,0x74,0x5e,0x3b,0xad,0xfc,0xac,0xf0,0x51,0x01,0x9c,0x57,0x4a,0x76,0x8a,0x7d, - 0xc1,0x80,0x40,0x85,0x15,0xb3,0x90,0x99,0x24,0x89,0x42,0x8f,0x55,0x83,0xe4,0xbc, - 0xfa,0x45,0x72,0xbc,0x61,0x3a,0x4e,0x8c,0xa4,0xbe,0xb5,0x7d,0xb5,0xbd,0x25,0x0f, - 0x17,0x60,0x80,0x29,0x80,0x73,0x0d,0xc2,0x30,0x94,0xf3,0x36,0x41,0x0d,0x27,0xe4, - 0x50,0x35,0xa4,0x02,0xc7,0xc1,0x7c,0x14,0x34,0x0c,0xf6,0xbd,0x7a,0x4d,0x8b,0xfe, - 0x6c,0x8c,0x69,0x6f,0xfe,0x6c,0xe4,0x8a,0x9b,0x02,0x0f,0xc4,0x40,0x55,0x5c,0x88, - 0x2e,0x57,0x9d,0x75,0xd5,0x2e,0x75,0xd6,0xa5,0x21,0xe0,0xa4,0xa4,0xc8,0x85,0xe5, - 0xee,0x86,0xb9,0xa1,0x54,0x62,0x00,0x17,0x2c,0x10,0x29,0x94,0xf3,0xeb,0xe0,0x8d, - 0x59,0x6b,0x82,0x9b,0xc2,0x81,0x3e,0x0e,0x70,0x28,0x96,0xc1,0x3b,0x72,0xa6,0x30, - 0xe8,0xd9,0x29,0x24,0xb2,0x2f,0x3a,0x6f,0xd0,0x8c,0x33,0xe5,0x55,0x10,0x79,0x74, - 0x8f,0xc9,0x5f,0x45,0x44,0x62,0xc1,0x90,0x04,0xfb,0xc4,0x51,0x51,0xb0,0xe0,0xa1, - 0x38,0x58,0x15,0x85,0x29,0xcd,0xb8,0xbf,0x6f,0x99,0x32,0xa8,0x6c,0xa1,0x80,0x4c, - 0x36,0xc8,0x58,0x0e,0xdd,0x50,0x8d,0x83,0x61,0x7b,0x73,0x93,0xa3,0x13,0x0f,0xdb, - 0x2d,0xd9,0x15,0x25,0x68,0xfa,0x36,0xfd,0xdd,0x6e,0x34,0xd2,0x26,0x87,0xc3,0xf6, - 0xde,0xfd,0xbd,0xf2,0xd9,0xed,0x18,0x87,0xba,0x26,0x13,0xa0,0x8a,0xfc,0xd9,0xd7, - 0x15,0x47,0x05,0x45,0x85,0x84,0x91,0x44,0xa0,0x73,0x80,0xa2,0xbe,0xb7,0xbb,0xd7, - 0xd9,0x45,0x33,0xb5,0xbe,0x9d,0xcf,0xa7,0x88,0xab,0x5c,0x04,0x23,0xac,0xe6,0xed, - 0x92,0x18,0x56,0x8a,0xa0,0x29,0x1d,0x46,0x04,0x94,0x8a,0xeb,0x24,0xc3,0x39,0xc3, - 0x4a,0x99,0x0c,0xaf,0x42,0x01,0x8e,0xb8,0x8c,0x0b,0x49,0x30,0x17,0xe5,0xef,0xef, - 0x9f,0x31,0x24,0xa5,0x14,0x20,0xd2,0x53,0x91,0xe3,0x59,0x61,0x75,0x78,0x45,0xfc, - 0xba,0xd5,0x18,0xd0,0x2f,0x41,0x1d,0x7c,0x82,0xb6,0x8f,0x90,0x3e,0x14,0x53,0xf6, - 0x8d,0xbe,0x8c,0x58,0x8c,0x16,0xfe,0xdc,0x08,0xd3,0xe8,0xc0,0xb8,0xaf,0xb8,0x85, - 0x3c,0xa0,0x0a,0xcb,0x52,0x4e,0xed,0x76,0x0e,0x0b,0x89,0xfd,0x96,0x51,0xea,0x07, - 0x64,0xf6,0xba,0x1e,0x72,0x4b,0x55,0xaa,0xc8,0xa1,0x71,0xeb,0xea,0x96,0x97,0x51, - 0xdd,0x0c,0xc4,0xfd,0x8c,0x82,0x94,0x96,0x65,0xcf,0xed,0xe8,0x6a,0xed,0x05,0x96, - 0x8b,0xf3,0xc8,0x42,0x4b,0x81,0x93,0xce,0x6c,0x09,0xe6,0x43,0xae,0x30,0x4c,0xa3, - 0x46,0x67,0x9b,0xe7,0xd1,0xb5,0xe0,0x03,0x19,0x35,0x0a,0xf2,0x8a,0xa3,0x6c,0x2e, - 0x61,0x28,0x75,0x0a,0x51,0xa3,0xeb,0xeb,0xa6,0x55,0x89,0x47,0x67,0x51,0x8f,0x08, - 0x6d,0x25,0x89,0x40,0x48,0x61,0x0e,0x17,0xde,0x38,0xd4,0x56,0x2c,0x31,0xed,0xb8, - 0xd5,0x2b,0x89,0x07,0xfb,0x05,0x1a,0x20,0xc7,0x8b,0xe7,0x0f,0x2d,0x7d,0xd5,0x9e, - 0x7f,0xa0,0x91,0x8a,0x9b,0x42,0xaa,0x4f,0x84,0x62,0x81,0xc1,0x6d,0xc7,0x25,0xa4, - 0xbc,0x9e,0x2d,0x0d,0xcb,0x1c,0x88,0x00,0x9b,0x9b,0x94,0xac,0x0a,0x43,0x6a,0x1b, - 0x39,0xe6,0x03,0x29,0xdf,0xc5,0x7e,0x26,0x2a,0xe7,0x21,0xac,0xc3,0x7f,0x88,0xfb, - 0x34,0xd4,0xde,0x4c,0x1a,0x8a,0xc9,0x83,0x56,0x17,0xb2,0xe2,0x68,0x5a,0x12,0x13, - 0xf4,0xb9,0xf8,0x34,0x9d,0xf6,0xcb,0xa1,0xec,0x45,0x78,0x66,0x35,0x8e,0xbd,0x77, - 0x47,0x0e,0x15,0xe9,0x0a,0xea,0xc7,0x0b,0x60,0x76,0x73,0x59,0x65,0x27,0x56,0xc2, - 0x58,0xc7,0xf8,0xe6,0x37,0xb9,0xed,0xe0,0xe5,0x06,0x77,0x3e,0x77,0x26,0xae,0x4d, - 0xcf,0x50,0xf3,0xc3,0x5c,0x18,0x52,0x17,0x32,0xf8,0x65,0x2e,0x71,0x69,0x9f,0xbc, - 0x35,0xde,0xd3,0xa2,0x72,0x4c,0x74,0x3c,0x0f,0x81,0xc6,0x6d,0x6f,0xbc,0xf0,0x28, - 0xc8,0xe6,0x34,0x8d,0x58,0x22,0x5e,0x6e,0x14,0x2f,0x0b,0xa5,0x6f,0x0d,0xf1,0x71, - 0x0a,0x9a,0x42,0x26,0x56,0x5e,0x2b,0x54,0x85,0x08,0xde,0xb5,0xe1,0x70,0xf9,0x30, - 0x40,0x8f,0x9b,0x54,0x38,0xa8,0x73,0xb6,0x09,0x2f,0x14,0x89,0x0a,0xca,0x0d,0x25, - 0xbd,0x7c,0xc8,0x18,0x48,0x68,0xe1,0x83,0x40,0xdb,0xba,0x09,0xc8,0x66,0x8d,0x6e, - 0xc4,0x8f,0x78,0x2a,0x7e,0x8c,0xa3,0x12,0x8f,0x60,0x5d,0xaf,0xe1,0x65,0xee,0xd6, - 0x92,0x9c,0xa0,0x97,0xf6,0x70,0x1b,0x1d,0x25,0x15,0xb7,0x6d,0xe6,0x88,0x4a,0x61, - 0xe5,0xb7,0x85,0xbf,0xa9,0xd4,0xd0,0xe1,0xb2,0x8a,0xc7,0x1a,0xdb,0xe0,0xb9,0xa5, - 0xd2,0x49,0xfd,0x58,0xc8,0xc1,0x58,0x8b,0xb1,0x58,0xe9,0xd2,0x50,0xaf,0x6e,0xd0, - 0xe9,0xf2,0x78,0x7a,0x39,0x1c,0x0f,0x04,0xae,0x23,0xfc,0xa4,0x54,0x23,0x7e,0xa7, - 0x5e,0xf0,0xd2,0x9a,0xcf,0x49,0x74,0xca,0x9f,0xb5,0xf2,0x88,0xbe,0x91,0xf7,0x63, - 0x59,0xd2,0xd1,0xf5,0x19,0x9a,0xce,0x01,0xa1,0xb3,0x10,0x57,0xc6,0x20,0x97,0x91, - 0x3e,0xc5,0x8a,0xa7,0x5f,0xe9,0xa2,0x5e,0xd5,0xae,0x29,0x41,0xfa,0x6a,0xa8,0x2a, - 0x00,0x26,0xe8,0x17,0xf2,0x44,0x81,0xc6,0x29,0xd4,0x09,0x10,0xe5,0x6b,0xb5,0x02, - 0x79,0xe0,0xc7,0x7b,0x55,0xd0,0x40,0xcf,0x1e,0x0d,0xa9,0x54,0x10,0xa3,0xef,0xac, - 0x6e,0x4d,0x21,0x87,0x94,0xc8,0xd9,0x10,0xf2,0x40,0x9c,0xb1,0x47,0x05,0xbf,0x78, - 0xdd,0xc2,0x77,0xb8,0x74,0x76,0x02,0x9a,0x19,0xe3,0x99,0xe2,0x77,0x23,0x1c,0xad, - 0xf4,0x4c,0xf6,0x5f,0xe1,0x15,0x26,0x0f,0x8e,0xf2,0x95,0x56,0x20,0x77,0x5a,0x47, - 0xf0,0x46,0x71,0xf8,0x51,0x40,0xf9,0xd5,0xd3,0xc6,0xce,0x52,0xb1,0x67,0x9c,0x4a, - 0xde,0x39,0x49,0x3c,0x27,0xc6,0x0f,0xec,0xe9,0x2f,0x40,0x95,0x70,0x76,0x99,0xf7, - 0x61,0x7b,0xe0,0xbe,0x1a,0xa6,0x3e,0x12,0xe4,0x86,0xb8,0x14,0x1c,0x17,0x57,0xf9, - 0x2d,0xb2,0xa1,0xb8,0xf1,0x43,0x1e,0x0b,0x4c,0x17,0x6f,0x18,0x55,0x15,0xca,0x30, - 0x02,0xca,0x3c,0x6c,0xc4,0x77,0xfe,0xf8,0x84,0x4c,0x8b,0x6f,0x5d,0x0f,0x3d,0xbe, - 0xf8,0xb0,0xbe,0xd2,0xec,0xa2,0x6e,0xb3,0x41,0xf1,0x10,0x36,0xdd,0x5c,0x42,0x9b, - 0xcd,0x8b,0x08,0x19,0x6d,0x06,0x7c,0x32,0xa5,0x9e,0x79,0x3d,0x54,0xf5,0x53,0x63, - 0x59,0xd6,0x0a,0xd9,0x13,0x21,0xa7,0x40,0x3e,0xb0,0x86,0x6a,0xac,0x62,0x0e,0x57, - 0x78,0x31,0x4c,0xd6,0x62,0x16,0x81,0x8a,0x2c,0x1e,0xa0,0x18,0x19,0x8c,0x4b,0x33, - 0x50,0x5d,0x2b,0x45,0x29,0xe9,0x78,0x4b,0xf0,0xa5,0xa7,0x95,0x08,0x19,0x9f,0xe5, - 0xcd,0x4d,0xf6,0x74,0x18,0xda,0x51,0xec,0xbc,0xc5,0x30,0x18,0x0d,0x95,0x77,0x42, - 0x8f,0x29,0x77,0x46,0x63,0x57,0x8e,0xdf,0xb8,0xf1,0x5b,0xd7,0x77,0x13,0xa7,0x61, - 0x4f,0x8d,0xcd,0x4d,0x7b,0x7a,0x30,0x6c,0x1d,0xea,0xff,0x07,0x18,0xb3,0x70,0x2c, - 0x0d,0x16,0xfe,0xa4,0x81,0x6f,0x17,0xec,0x40,0x89,0xed,0xb6,0x61,0xec,0x80,0xa8, - 0xbf,0xad,0xff,0x87,0x36,0x59,0x24,0x77,0x1a,0xbd,0xb6,0x82,0x0e,0xa3,0x38,0xf0, - 0xf4,0xe8,0xbd,0x7c,0xa4,0x4d,0x0e,0xf9,0xc5,0x13,0x6d,0xa1,0x24,0x39,0xd7,0x56, - 0x42,0xb7,0x64,0x06,0x15,0x7a,0x7f,0x66,0x1e,0xd9,0xdc,0x7c,0x06,0x25,0xd1,0x39, - 0x0b,0x09,0x93,0x7a,0x63,0xc2,0x58,0x8b,0x70,0x55,0x36,0xcc,0xf6,0x20,0xba,0x5a, - 0xf2,0xce,0x9f,0x39,0x11,0x00,0x62,0x92,0xbb,0x8c,0x01,0xb5,0xdc,0x89,0x99,0x1a, - 0x2e,0x8d,0x62,0x53,0x42,0x3d,0xac,0x52,0xd5,0xa4,0x6d,0x46,0xed,0x38,0x67,0x2b, - 0xb8,0x42,0x8d,0x50,0xcd,0x65,0xe5,0xb0,0x4c,0x0c,0x02,0xb2,0x1d,0x04,0xc0,0x05, - 0x52,0xa5,0x31,0x50,0xc6,0x84,0x78,0x9e,0x21,0x77,0x8e,0x6e,0xa6,0x85,0x10,0xdf, - 0xab,0xc7,0x04,0x54,0xab,0x68,0xc1,0x28,0x8c,0x0b,0x52,0xd6,0x1a,0x59,0x20,0xc8, - 0x95,0xca,0x83,0xab,0x7a,0x8c,0x2e,0x53,0xab,0x51,0x8e,0xf2,0x3c,0x4e,0x15,0xa1, - 0xbb,0xa0,0x7e,0xc7,0x29,0xa6,0x26,0x41,0xe8,0xf2,0x90,0x11,0x2f,0xfc,0x22,0xa7, - 0x10,0xf7,0x37,0xa4,0xcf,0x1d,0x92,0x77,0x3c,0xa8,0x4e,0x5f,0xbc,0x64,0x4f,0x15, - 0x8d,0xbd,0x76,0x28,0xbc,0x1b,0xde,0xe2,0xd6,0x66,0x81,0x0f,0x64,0x89,0xd8,0xe0, - 0xe6,0x66,0x6c,0x89,0xe7,0x7b,0x2c,0x0e,0xc8,0x25,0x26,0x35,0x1f,0x36,0xdb,0x83, - 0xd3,0xa3,0xd7,0xef,0x3e,0x7d,0x3d,0x39,0x7d,0x73,0xf6,0xe6,0xfc,0xac,0x3c,0x8f, - 0x10,0xe8,0x1e,0x02,0x4e,0x9a,0x49,0xb8,0x1f,0x86,0x43,0x68,0xc0,0x00,0x8d,0xf9, - 0xd0,0xc5,0xc1,0xc7,0x02,0xa4,0x73,0xdc,0x96,0x82,0x0d,0xcc,0x8d,0x7e,0x43,0xce, - 0x25,0x47,0x63,0x0e,0x75,0x1c,0xbf,0xde,0x8f,0xd3,0xad,0xfe,0x20,0x04,0x6a,0x61, - 0x5f,0xc8,0x84,0x08,0xe5,0x26,0x99,0x6a,0x5e,0xda,0xdc,0xcc,0x98,0xa3,0xfa,0x3b, - 0x33,0x79,0x80,0x34,0x68,0x94,0x0d,0x74,0x65,0xb3,0xa6,0x9a,0x8b,0x52,0x99,0x40, - 0xc3,0xd5,0x5b,0x5c,0x69,0xa6,0x6e,0x3f,0x3f,0xab,0x23,0x02,0x38,0x5c,0xd1,0x09, - 0x19,0x87,0x79,0xf2,0x35,0xf8,0x5e,0x32,0xb5,0xe5,0xf3,0x33,0x31,0x72,0xb0,0x51, - 0x87,0xbf,0x8a,0xd5,0x5f,0x20,0x5b,0xee,0x0b,0xa5,0xae,0x8d,0xbc,0x1d,0xad,0x24, - 0xa9,0xa6,0x30,0xa9,0x1c,0xa7,0xa0,0x2c,0xb9,0x7e,0x30,0x49,0xfd,0xc8,0xf7,0x82, - 0xc6,0xa3,0x42,0x03,0x85,0x6e,0x1e,0xf2,0x3e,0x21,0x05,0xe6,0xb3,0x14,0xe6,0x08, - 0xd5,0xd6,0x95,0x22,0x97,0x40,0x72,0xc1,0x6b,0xc2,0xf0,0x1f,0x6e,0xec,0xa2,0xae, - 0xfb,0xec,0x87,0x86,0x74,0xe7,0x52,0xf5,0x50,0xf1,0x36,0x47,0x5c,0x70,0x2f,0x16, - 0x01,0x33,0xaa,0x34,0x56,0xba,0x9d,0x67,0xfa,0x07,0x2d,0xe0,0x42,0x69,0xf3,0x4a, - 0xbd,0xa6,0x5f,0xd0,0x94,0xfc,0xed,0x86,0x8f,0xd6,0x0b,0xd0,0x27,0x39,0xa6,0x05, - 0xf0,0x21,0x19,0xdd,0x42,0x2f,0x5a,0x07,0xd2,0x70,0x1a,0x4b,0x45,0xc0,0x2f,0x8a, - 0xdc,0x42,0x29,0xa2,0xad,0x29,0x7f,0xf3,0xcd,0x45,0x9d,0x63,0x70,0x38,0x13,0x9d, - 0x6e,0x83,0xd0,0x9d,0xd7,0xf7,0x9f,0xce,0xd1,0xcd,0xf3,0xfd,0x9b,0x8f,0xc3,0x65, - 0x12,0x5c,0x39,0x7e,0xbf,0xf7,0xc2,0x5c,0xc4,0xf8,0x32,0xdc,0xdc,0xe9,0x77,0xdb, - 0xe9,0xc5,0xd5,0xfe,0x5e,0xd7,0xe4,0x40,0x4a,0xf8,0x8b,0xc2,0x59,0xf7,0x5f,0xee, - 0x9a,0xf6,0x62,0xe2,0x62,0x38,0x12,0x74,0xd8,0x67,0xb0,0x9e,0xfc,0x7a,0xfe,0xf5, - 0xfc,0xbf,0x4e,0xde,0x9c,0x0d,0x2f,0x2e,0x5a,0xa6,0x7e,0xfa,0xe6,0x7f,0xea,0x5f, - 0xcc,0x8b,0x36,0xfe,0x3a,0x3b,0xf9,0xf4,0xf1,0xec,0x0d,0x7e,0x76,0x4c,0xfd,0xfc, - 0x77,0xe8,0xf9,0xec,0x67,0xfc,0xea,0x9a,0xfa,0xd1,0xf1,0xaf,0xf8,0xab,0x07,0xbf, - 0x5e,0xff,0xe3,0xcd,0xe9,0x39,0x7c,0x6c,0x5c,0xec,0x9a,0xfa,0xcf,0xa7,0x27,0x5f, - 0xa1,0x24,0xe6,0xed,0xf1,0xd7,0xeb,0xa3,0xf3,0x23,0xfc,0x7c,0x01,0x45,0x3f,0x7e, - 0xfa,0xf8,0x55,0x74,0xb0,0x6f,0xea,0x27,0x47,0xe7,0xbf,0xe0,0xcf,0x97,0xd0,0xf8, - 0xe9,0xd1,0xf1,0x1b,0x6a,0xa3,0x0d,0x63,0xf8,0xf0,0xf9,0xfd,0xf9,0xbb,0x93,0x23, - 0x6a,0xf5,0xa2,0x0d,0x43,0x39,0xfe,0xf4,0xf1,0xfc,0xf4,0xd3,0x7b,0xfa,0x84,0xa1, - 0x20,0xe1,0x82,0x99,0x4d,0xe8,0xbb,0x5b,0xf8,0xee,0xe5,0xbe,0xa1,0x41,0x18,0xd5, - 0xe9,0xd1,0x6f,0x5f,0x8f,0x3f,0x9f,0x9d,0x7f,0xfa,0xa0,0x7f,0xf9,0x92,0x4d,0xfb, - 0xe3,0xd1,0x87,0x37,0xaf,0x25,0xe6,0x8d,0x23,0x07,0xf0,0xb2,0x81,0x4e,0x36,0xb0, - 0x8e,0x29,0x54,0x2a,0xe8,0x28,0x2d,0x55,0x78,0xd1,0xc6,0x03,0xb0,0xac,0x2f,0x23, - 0x6d,0xf1,0x02,0xf3,0x00,0xc5,0xe8,0xdd,0x98,0x63,0xd8,0x16,0x0d,0xe3,0xcb,0x30, - 0xbc,0x68,0x7d,0xc9,0xed,0x83,0x29,0x89,0x9d,0x1f,0xec,0xf8,0xaa,0x81,0x08,0x26, - 0x36,0x42,0x22,0xe5,0x6e,0x4c,0xcb,0x5c,0x7e,0xa8,0x84,0x05,0x39,0xf3,0x06,0x93, - 0xb3,0x84,0xe8,0xcd,0xfd,0x3d,0xfd,0xb5,0x3d,0x2f,0x3d,0xc4,0x6c,0xdd,0xbe,0x85, - 0xff,0x65,0x65,0x28,0xc2,0x5c,0x9a,0x29,0x6d,0x49,0xf1,0xd5,0xb0,0x65,0x06,0x57, - 0xe2,0x04,0x06,0xb4,0x32,0xc0,0x3b,0x40,0x38,0xb3,0x8a,0xff,0xe1,0x4b,0x36,0x72, - 0x74,0x50,0x05,0x3f,0xc5,0x48,0x4c,0x1f,0xd9,0x0e,0x5d,0x38,0xfc,0xe7,0x45,0xab, - 0xf9,0xf2,0xcb,0xf6,0x0f,0xe2,0x7e,0x20,0x14,0x34,0x0c,0x9f,0x65,0xc3,0x77,0x3e, - 0x7d,0x9b,0xed,0x96,0x91,0x51,0x36,0x48,0xc8,0x43,0x08,0x99,0x4a,0x0a,0x41,0xa8, - 0x9a,0x41,0xb3,0x54,0x94,0x0f,0xc6,0xfc,0x57,0xad,0xfb,0x7b,0xff,0xa0,0xbd,0x0b, - 0xec,0xf9,0x4a,0x88,0x5c,0x3c,0xcd,0x87,0x0d,0x9c,0xe0,0xfd,0xb0,0xd1,0x7e,0xf5, - 0xca,0x4f,0xcd,0xda,0x04,0x80,0xe0,0xea,0x10,0xf3,0xfa,0x12,0x4a,0x0f,0xc5,0xf5, - 0x38,0x07,0x40,0x37,0xb0,0x08,0x53,0x41,0x82,0xd4,0x70,0xc8,0xc5,0xa5,0xb1,0x19, - 0xc1,0x3d,0x50,0x73,0x65,0x06,0xc1,0x5a,0x9c,0xc3,0x2e,0x92,0x21,0x7a,0xdd,0xe6, - 0x2f,0x53,0xb5,0xf7,0x48,0x8d,0x11,0x55,0x37,0x71,0x80,0xae,0x61,0x40,0x59,0x2b, - 0x5c,0xc4,0xb3,0x86,0xab,0x0c,0x14,0xd2,0xf8,0xea,0x93,0x59,0x20,0x2b,0xb1,0x54, - 0x6b,0x7e,0x49,0xe6,0x5e,0xc3,0x35,0xa7,0x26,0x1e,0xf1,0x9a,0x74,0x59,0xd5,0x44, - 0xdb,0x4e,0x7a,0xb7,0x6a,0x2b,0x17,0xe9,0x50,0x8b,0xa7,0xcd,0xad,0xed,0x29,0x08, - 0x55,0x32,0xc4,0xe1,0xd6,0x36,0xfd,0xdd,0xde,0xaa,0x0c,0xa0,0xbb,0xb5,0x8d,0x7f, - 0xa1,0x78,0x2e,0x8e,0xf3,0xd6,0xb6,0xbb,0xbd,0x65,0x71,0x3b,0xeb,0xc6,0x62,0xad, - 0x08,0x17,0xba,0xb5,0xdd,0xc0,0xa1,0x1e,0x6e,0x95,0xe3,0x48,0x6e,0x6d,0xe3,0x5f, - 0x1c,0x14,0x06,0x00,0xd8,0xea,0x6f,0x6d,0x19,0xe9,0x47,0xfe,0x56,0x9e,0xa2,0xbd, - 0x31,0x2c,0x04,0x96,0x8e,0x82,0x5b,0x27,0x1e,0x66,0x3b,0x78,0x6e,0x87,0x79,0x27, - 0x69,0x09,0x1e,0x9a,0x75,0x1a,0x26,0xf5,0x6a,0x75,0x9c,0xe2,0x70,0x8a,0x30,0x71, - 0x71,0xde,0x42,0xa9,0xde,0xda,0xc6,0x4d,0x8d,0x00,0xe5,0x10,0x81,0x07,0x32,0x41, - 0xc3,0x1f,0xed,0x2f,0x38,0x6c,0x19,0xdb,0x84,0x01,0x5e,0xb8,0xd1,0x56,0xb7,0x4c, - 0x8c,0x8a,0x4a,0x74,0x57,0x7e,0x55,0x01,0x46,0x95,0xc6,0x9b,0xdf,0xda,0x80,0xd6, - 0x57,0xbd,0x07,0x98,0x2d,0x96,0x6c,0x8d,0xaa,0xa8,0x71,0x61,0xaf,0x2e,0x11,0xda, - 0x04,0xad,0x14,0xc2,0xa5,0x32,0x36,0x0c,0x63,0x55,0x40,0x3a,0x0f,0xa3,0x47,0x08, - 0x00,0x81,0x00,0x20,0x60,0xd4,0xc7,0x3d,0x82,0x71,0xec,0xd3,0x70,0x42,0xd4,0xf2, - 0x77,0x34,0x94,0x45,0xc8,0xcc,0x37,0xa5,0xc6,0xf5,0x80,0x0a,0x8b,0x79,0x21,0x66, - 0x50,0x71,0x26,0x8c,0x5c,0xbf,0xcd,0xdc,0x31,0x3e,0x65,0x71,0x87,0x0c,0x99,0x21, - 0x4a,0x96,0x49,0x7e,0xfd,0x43,0x09,0xe2,0xc2,0x2f,0x7d,0x58,0x9a,0xf2,0x10,0xd3, - 0x28,0x48,0xe4,0x2b,0x18,0x6c,0xb5,0xb4,0x6f,0x44,0xbd,0x78,0x20,0x5f,0xea,0xc0, - 0xf4,0xd4,0x4b,0x87,0x5a,0xf6,0xe9,0x81,0x11,0x5e,0x03,0x0c,0x80,0x4a,0x32,0x25, - 0x1a,0x33,0x39,0xf4,0x29,0x40,0x5f,0x36,0x22,0x1f,0x1b,0xc9,0x45,0x2b,0xcd,0xa3, - 0x7c,0x85,0xd1,0x22,0xa7,0xdb,0xfd,0x30,0xd4,0xe5,0x72,0x57,0x6a,0x4e,0x52,0x5d, - 0x70,0x87,0xb3,0x4c,0x1a,0xae,0x76,0x58,0xdd,0x31,0x00,0x83,0x07,0x42,0x90,0x8f, - 0x26,0x50,0x21,0xb3,0x5f,0x21,0x09,0x12,0xe6,0x00,0xcc,0xcb,0xdf,0x2d,0x43,0x9a, - 0xa8,0xf0,0xb6,0x59,0xaa,0x17,0x60,0xd1,0x72,0xc8,0x06,0x31,0xf4,0x6c,0x77,0x55, - 0x0e,0x7c,0x8c,0x37,0x46,0xc7,0xa3,0xcc,0x8f,0x26,0xa5,0x9f,0x29,0x8b,0x81,0x5c, - 0xb6,0x78,0x03,0x9f,0x31,0x0c,0x60,0xcd,0xad,0xec,0x00,0x19,0xd0,0x63,0x58,0xee, - 0x1e,0x2f,0x57,0x12,0xe6,0x88,0xcb,0x23,0x8b,0xb9,0x01,0xff,0xe5,0x23,0x43,0xa8, - 0xf4,0xff,0x10,0x29,0x3f,0x23,0x8d,0xde,0x4f,0x89,0xff,0xa1,0x2e,0x1f,0x89,0x91, - 0x48,0xa4,0xf7,0x8b,0xbc,0x44,0x0c,0x03,0x5f,0x98,0xcd,0x01,0x72,0x2a,0xba,0xc6, - 0x0c,0x03,0xff,0xa9,0xd7,0x33,0x95,0x05,0x2b,0xd8,0x78,0x8a,0x97,0x95,0x15,0xfc, - 0xa0,0xf8,0xe2,0xce,0x04,0xb8,0x04,0xad,0xd3,0x52,0xe1,0xfe,0x7f,0xc3,0x7a,0xa0, - 0x0a,0x97,0x2e,0x89,0x91,0xf1,0xdc,0xea,0x25,0xc9,0x56,0x43,0x50,0x27,0x1d,0x9a, - 0x4f,0xd1,0xd5,0xbc,0x1e,0x16,0x81,0x36,0x28,0x5a,0x2d,0x6a,0x4d,0x15,0x80,0xd6, - 0x33,0x79,0x2c,0x93,0xd7,0xbe,0xaf,0x48,0xef,0xae,0xb4,0xf5,0xa9,0x17,0xd9,0x32, - 0xcb,0x71,0x9c,0x1a,0x83,0x67,0x41,0x8c,0x31,0x43,0x30,0x81,0x30,0x1d,0xbf,0x73, - 0x98,0x3e,0x03,0x9e,0xc3,0xb7,0x18,0x56,0x9a,0x2c,0x59,0x1c,0xc0,0xc8,0x05,0x5b, - 0x95,0xc1,0x7f,0xf1,0x91,0x21,0xdf,0xd1,0x9a,0x69,0x04,0xdf,0xad,0x81,0x72,0x8b, - 0xa7,0x52,0xfc,0xc4,0xd6,0xb6,0x4b,0xcd,0x6d,0x6d,0x63,0x4c,0x91,0x90,0x1c,0xbc, - 0x0d,0xe4,0x4a,0x85,0x84,0xac,0x03,0x84,0x51,0x75,0x1b,0x63,0x3a,0xc2,0xd1,0x0f, - 0xf8,0xaf,0x65,0x59,0xea,0xa8,0x70,0xc2,0x58,0x45,0x8d,0xa1,0x87,0x94,0x80,0xa9, - 0x36,0xfe,0x94,0x38,0x53,0xa2,0xbe,0x14,0x99,0x6d,0x74,0x80,0x30,0xd6,0xa8,0x08, - 0x47,0xdd,0xaa,0x22,0xd4,0x53,0xf5,0x41,0x5a,0xf5,0xa9,0x83,0x8a,0x07,0x56,0x98, - 0xc1,0x31,0xa8,0x70,0xbe,0x34,0xa9,0xad,0x42,0x08,0x64,0xe8,0xa0,0x28,0x33,0xe9, - 0xa4,0x3a,0x81,0x68,0x95,0xba,0xe5,0x82,0x72,0x32,0x1e,0x63,0x2c,0x2e,0x99,0xa3, - 0x1b,0x15,0xd5,0xa4,0xa2,0x05,0xf9,0x14,0x9f,0xc4,0xd4,0x3f,0x67,0x29,0x95,0x35, - 0x94,0x0e,0x94,0x9f,0x27,0xd9,0xcf,0xca,0x5a,0xac,0xb8,0x65,0xbd,0xf0,0xfb,0x1e, - 0x84,0x92,0xb5,0x1d,0x05,0x11,0xe6,0x89,0x50,0xdf,0xd0,0x05,0x7f,0x57,0x96,0x25, - 0x6d,0x30,0x6b,0xfd,0x1c,0x3f,0xb5,0xc4,0x01,0x09,0x0d,0x9f,0xda,0x83,0xba,0x59, - 0x18,0xd0,0xb8,0xaf,0x2d,0xd1,0xa1,0xf7,0x41,0x5b,0x72,0x5c,0x33,0xf8,0x81,0x14, - 0x10,0xff,0x20,0xa4,0x1e,0x2a,0x3b,0x90,0x5a,0x66,0xd6,0xc7,0x7f,0xfe,0x76,0xae, - 0x29,0xa9,0xf2,0x42,0xa5,0xd6,0x54,0xc2,0xb0,0x23,0x74,0x77,0x10,0x4a,0x1a,0xdf, - 0x17,0xdb,0xd8,0xae,0x10,0xf1,0x36,0x72,0xc2,0x20,0x42,0x44,0xb9,0xf3,0x8a,0x18, - 0x5a,0x75,0x42,0xaf,0x1c,0x05,0x60,0x0d,0x34,0x84,0x6d,0x54,0xee,0x69,0x66,0x75, - 0xd8,0x68,0x9e,0x53,0x08,0x32,0xa4,0xe2,0xb8,0xf0,0xa8,0x29,0x73,0x40,0x46,0xc7, - 0x37,0x5e,0x15,0xc7,0xc9,0xc8,0x59,0x09,0x7d,0xc9,0xb1,0x83,0x6c,0x21,0x80,0x4e, - 0x43,0xd9,0x88,0xea,0x02,0x30,0x71,0xa6,0xa4,0x10,0x0e,0x1e,0x21,0x0f,0xa8,0x9d, - 0xd2,0xa6,0x07,0xf6,0x44,0x7b,0x1f,0x2b,0x86,0x92,0xfa,0xd2,0xe5,0xd4,0xa1,0xc8, - 0x96,0x1b,0xfe,0x50,0xfe,0xe8,0x37,0xa0,0xf0,0x21,0xfc,0xc7,0x97,0x58,0xfb,0x42, - 0x7f,0xcc,0x42,0xf8,0x7c,0x00,0x16,0x26,0x2c,0x0f,0xdc,0xd2,0x70,0x28,0x77,0x53, - 0x6a,0x86,0x48,0x33,0x30,0x05,0x17,0x14,0x14,0xd5,0x34,0x4d,0x74,0x64,0x6e,0xa4, - 0x96,0x8a,0x95,0xc5,0xd3,0x5d,0x53,0xd1,0x84,0xb0,0x6f,0x54,0x34,0x0d,0xc8,0x5f, - 0x4e,0x66,0x23,0x48,0x29,0x39,0x35,0x89,0x94,0x72,0x98,0x23,0xf5,0x71,0x4e,0xcf, - 0xa4,0x2a,0xfd,0x90,0xf7,0xd5,0x13,0x20,0xa9,0x60,0x4a,0x53,0x41,0xfa,0x6f,0xaa, - 0x25,0x0f,0x10,0xf3,0xf5,0xed,0x29,0xa1,0xd0,0x8d,0x71,0xb3,0x22,0xa6,0x00,0x77, - 0x70,0x31,0xfd,0x92,0xb2,0xfa,0x15,0x47,0x1e,0xc2,0x26,0xf5,0xc8,0x99,0x87,0x39, - 0x2f,0x99,0x44,0x37,0x37,0x1b,0xf3,0xdc,0xe9,0x67,0xb5,0x54,0xc8,0x68,0xc7,0xf7, - 0x98,0x36,0x2e,0xd4,0x93,0x37,0x53,0x39,0x61,0xab,0xb8,0x62,0x49,0x7c,0xb5,0xea, - 0x60,0x0e,0x33,0x4c,0xba,0xfe,0x64,0xd4,0x99,0xee,0xc3,0x69,0xea,0x74,0x0b,0xbb, - 0x33,0x77,0x92,0x2a,0x24,0x51,0xb6,0x26,0xc3,0x3e,0xac,0x12,0x7e,0x72,0x2d,0xb1, - 0x20,0x34,0x10,0x46,0xc9,0x55,0x90,0xc4,0xeb,0x98,0x55,0x80,0x1c,0x65,0x70,0x94, - 0x03,0x39,0x2c,0xa5,0xc8,0x23,0x05,0x52,0x65,0xbe,0xe8,0x06,0x45,0x4e,0x63,0xbf, - 0xad,0x51,0x9e,0x58,0x60,0x34,0xc7,0xe1,0x48,0x19,0x21,0xfe,0x2b,0xcc,0x31,0x7d, - 0x3c,0xab,0x24,0x83,0x4b,0x0c,0x7a,0xa5,0x09,0xd2,0xa7,0xf8,0x68,0x7f,0x91,0x66, - 0x1f,0x85,0x6c,0x8d,0xd6,0x90,0xd0,0xff,0xaa,0xcc,0xa7,0x88,0xe0,0xd0,0x3b,0x82, - 0x70,0x85,0xb8,0x59,0xb8,0x0c,0x88,0x27,0xda,0x6f,0x03,0x0c,0xac,0x62,0x06,0x57, - 0xe6,0x3c,0x96,0x07,0x32,0x95,0xc7,0xe3,0x38,0x72,0xc8,0xc8,0xfb,0xb6,0x7b,0x93, - 0xe1,0xea,0xa3,0x72,0x28,0x61,0xc0,0x7f,0xca,0x61,0x39,0x5f,0xe6,0x4b,0xd7,0x99, - 0x8d,0x7c,0x22,0xa0,0x59,0x03,0x83,0xd8,0x93,0x2b,0xfe,0x98,0xf7,0xdf,0x47,0x24, - 0x8a,0x3a,0x36,0x87,0x47,0x91,0xc1,0xd5,0xa1,0x1e,0x5c,0xc1,0x22,0xd0,0xd5,0xc7, - 0xc1,0x38,0xaf,0x18,0xc4,0x97,0x83,0x8d,0x8a,0xc1,0x70,0xcc,0x30,0xc3,0xc2,0x87, - 0x78,0xfc,0xc9,0xf1,0x0c,0x04,0xcb,0xc6,0xb8,0x60,0xc0,0xb1,0xaf,0x1d,0x86,0x54, - 0xdc,0x80,0x16,0x23,0xdb,0x24,0x69,0x9a,0x08,0xac,0x93,0xcc,0x6d,0x72,0x44,0xd9, - 0xa8,0xb6,0x87,0xc7,0x18,0x1f,0x2a,0x33,0x1d,0x9b,0xb2,0x62,0x68,0x0f,0x77,0xb2, - 0xdd,0xc9,0x36,0x38,0xdb,0x38,0x4c,0x6b,0x5e,0xd8,0x5f,0x52,0x63,0xe0,0x61,0xab, - 0xdf,0x36,0xfa,0x1d,0x81,0x7f,0xa3,0x72,0xc5,0x91,0x5a,0x71,0x54,0x51,0x51,0xfa, - 0xb8,0x00,0xca,0x8c,0xee,0xef,0x6d,0x8b,0xde,0xf9,0x70,0x8e,0xf1,0x5d,0xd0,0xc8, - 0x81,0xea,0x64,0xe6,0xa8,0x72,0x51,0xe5,0xf9,0xe1,0x69,0xb6,0x7a,0xd4,0x2d,0xaf, - 0x14,0x07,0x93,0xbb,0x21,0x16,0xe9,0x73,0x31,0x8e,0xf0,0xc5,0x20,0xda,0xdc,0xa4, - 0x3f,0x16,0xbb,0x06,0x19,0x18,0xfc,0x49,0x7d,0x21,0xc8,0x17,0x90,0xcb,0x32,0xf8, - 0x21,0x9b,0x5c,0x7a,0xf1,0xd5,0x93,0x7c,0x6e,0xfe,0xba,0xa3,0x92,0x69,0xd0,0x9d, - 0x6e,0xee,0x58,0xd8,0x4b,0x61,0x58,0xb9,0xe5,0xe1,0x82,0xe2,0xb0,0x02,0x75,0xc2, - 0xcd,0xcd,0x67,0x4a,0x2d,0x63,0x29,0xec,0xf9,0x1f,0x85,0xa2,0x98,0x04,0x1c,0x7f, - 0xc3,0x48,0x0d,0x96,0xec,0xe5,0x8c,0x71,0xaa,0xd2,0x50,0x4f,0x03,0xd1,0x02,0x26, - 0x72,0xe8,0xaa,0xec,0x54,0x82,0xee,0x5b,0x17,0xee,0x5a,0x6f,0x28,0x37,0x6c,0x85, - 0x77,0x0f,0x87,0xab,0x2a,0xdd,0xb1,0x0d,0x03,0xcf,0x3b,0x75,0x62,0xbc,0xcd,0x3d, - 0x1e,0x99,0x2d,0xf8,0x3f,0x6c,0xc0,0xa4,0x4e,0x4c,0x31,0x19,0xbc,0xc7,0xfc,0xc8, - 0xc5,0xfe,0x61,0xfe,0x62,0x7f,0xd5,0xc0,0xd8,0x2a,0x4b,0x7a,0xa2,0x31,0x1e,0x91, - 0x6d,0xdd,0x14,0x7e,0x94,0x72,0xe6,0xd4,0xa2,0x12,0xae,0xac,0x75,0x7f,0xaf,0x7e, - 0xb7,0xbb,0x68,0xe1,0x58,0xd9,0x3c,0x37,0x01,0x2b,0xc1,0xb6,0x90,0xc7,0x5d,0x7d, - 0xca,0xa7,0x81,0x5c,0x5d,0x21,0x50,0x1c,0x00,0x33,0x9d,0xea,0xfd,0xbd,0x1e,0x39, - 0xfc,0xe0,0xab,0x9e,0xb2,0xe1,0xca,0x69,0x11,0xfb,0xe2,0xe5,0x6e,0xa8,0xd5,0x29, - 0x0a,0x7a,0xd6,0xc6,0x36,0x8f,0xf8,0x50,0xef,0x03,0xa5,0xa1,0x9f,0xe8,0x8a,0x98, - 0x9a,0x04,0x45,0xf3,0x39,0xc0,0xbc,0x94,0xe0,0x67,0x94,0x18,0x32,0x52,0xac,0xb7, - 0x9a,0x29,0xb4,0x1f,0x87,0xe4,0xca,0x29,0xe9,0x47,0x3e,0xc7,0xae,0x61,0x39,0x03, - 0x1d,0xf2,0x46,0x0e,0x3d,0xcf,0x23,0x3c,0xfb,0x44,0xd8,0x06,0x8e,0x78,0xe8,0xdd, - 0xe9,0xb9,0x19,0x95,0x47,0x2a,0xe2,0xa7,0xe6,0x86,0x5a,0xb4,0x67,0xa4,0xa1,0xe4, - 0x97,0x62,0x97,0xe0,0x96,0x12,0x9c,0x66,0x58,0x22,0x03,0x92,0x52,0x96,0x09,0x81, - 0x9a,0x53,0x45,0x0a,0xd4,0xfc,0x0a,0x62,0x90,0xd9,0x5b,0x88,0x6c,0xde,0x4c,0xde, - 0x44,0xd1,0xd0,0x9e,0xcc,0x5d,0xff,0x84,0x7e,0x03,0xde,0xe4,0x86,0xc6,0x42,0x09, - 0x97,0x23,0x14,0xae,0x0e,0xb5,0xc4,0x27,0xea,0xe4,0x12,0x8c,0x02,0x07,0xb2,0x2c, - 0x06,0xb5,0xa8,0xa9,0xc2,0x4f,0x65,0x1c,0xc5,0x00,0x75,0x2a,0x64,0x81,0x5f,0xc5, - 0xa6,0x3b,0xf1,0x9c,0xd8,0xb4,0xc9,0xcb,0x58,0x00,0x98,0x22,0x3c,0x24,0xe4,0x7c, - 0x8b,0x45,0x86,0xf8,0x0f,0x7a,0x7c,0x53,0xd1,0x21,0xfd,0x4b,0xae,0xf6,0xd9,0x91, - 0x88,0xed,0xe2,0xe1,0xe5,0x93,0x90,0x86,0x7a,0xcc,0x21,0x8d,0xcd,0x37,0xea,0x70, - 0x11,0x27,0x26,0xce,0x5f,0x13,0x27,0xe0,0x1c,0x56,0xe9,0xc6,0x8e,0x35,0x60,0xfd, - 0x09,0xe1,0x0e,0x9b,0x65,0x03,0x0c,0x67,0xe9,0x4e,0xef,0x30,0xdc,0x26,0xee,0x9b, - 0x34,0x26,0x08,0xc9,0x1e,0xea,0xd3,0x78,0xc2,0x7b,0x34,0x42,0xa7,0xb3,0x8d,0xa2, - 0x77,0xe3,0x4e,0x44,0x20,0x39,0xe4,0x0d,0x03,0xfb,0xcc,0xc7,0x27,0xc1,0x3f,0x9f, - 0xbe,0x43,0x4e,0x05,0x0c,0x0d,0x24,0x00,0xde,0x43,0xe6,0x52,0x84,0x5a,0xec,0x03, - 0xfd,0x69,0x3d,0xd4,0x46,0x55,0xa4,0xd2,0xcf,0xd2,0x9d,0xc7,0xe0,0x51,0x29,0x19, - 0x07,0x83,0xe0,0xd8,0xa6,0xc0,0xfe,0xf1,0x42,0x36,0x31,0xbd,0x8a,0x70,0x8f,0xc5, - 0xcd,0xc0,0xeb,0xa5,0x6e,0xdd,0x74,0xb9,0x1e,0xcc,0x1e,0x7a,0xa3,0x97,0xfb,0x41, - 0xa5,0x64,0x42,0xfa,0x19,0x0d,0x90,0x9a,0x78,0xd5,0x5b,0xaf,0xc7,0x0c,0x49,0xb6, - 0xdb,0x35,0x68,0xf2,0x60,0xbe,0x50,0xfb,0xcd,0x4d,0x17,0xd1,0xef,0x11,0xbc,0xa0, - 0x48,0x79,0x50,0x27,0x1e,0xb6,0xf8,0xce,0x0c,0x47,0xc8,0x96,0xd9,0x04,0x4f,0x1c, - 0x0d,0x87,0x40,0xa8,0x88,0xca,0x22,0x4f,0x1d,0x83,0xab,0xe1,0xce,0x3f,0x3f,0xfd, - 0xba,0xe3,0xb2,0x78,0xe2,0x26,0x14,0x24,0x57,0xb8,0xb7,0x3d,0x0b,0xae,0x0c,0xea, - 0x65,0x7b,0x9b,0xbf,0xc7,0xa3,0xcd,0x4d,0x0c,0x24,0x99,0xce,0x03,0x54,0x1b,0x97, - 0x38,0x35,0xed,0xe3,0x74,0x76,0x74,0x6b,0x8e,0x65,0x10,0xce,0x46,0x41,0x27,0xcd, - 0x96,0x69,0x46,0xd1,0x35,0x4f,0xa4,0x53,0x5f,0xfc,0x1b,0x57,0x9b,0xb7,0x31,0x2f, - 0xc3,0x0e,0xd3,0x81,0xd2,0x70,0x0d,0x15,0x08,0xf2,0xea,0x9b,0x50,0xcd,0x6a,0xc2, - 0x23,0x6f,0xb1,0x93,0x83,0xa6,0x18,0x41,0xb9,0x4f,0x61,0x7f,0x10,0x1e,0x81,0x79, - 0xc9,0x1a,0xe5,0xd6,0x4f,0xbf,0xea,0x7d,0xd9,0x71,0x16,0x52,0xf8,0x9f,0x40,0x51, - 0x1a,0x41,0x64,0x1c,0x5e,0xf4,0xcd,0x2f,0x87,0x7f,0xc4,0x3f,0xee,0xb8,0x26,0xb3, - 0x1d,0x19,0xea,0x8e,0xe3,0x8e,0xdd,0xd8,0x91,0xbf,0xea,0x72,0x80,0x32,0x11,0x43, - 0xee,0x7f,0x50,0x0d,0x30,0x22,0x81,0x82,0xa4,0xb4,0x2a,0xc2,0x95,0x81,0x57,0x48, - 0x47,0x99,0x2a,0xe1,0x40,0xc7,0x29,0x33,0x84,0x6d,0x1d,0x3b,0xb0,0xc7,0x49,0x21, - 0xd4,0x95,0x23,0xe2,0x28,0x15,0x9f,0x36,0x54,0xb7,0x62,0x96,0x15,0x25,0x81,0x3e, - 0xe2,0xd0,0xe6,0x92,0x1f,0xa8,0x8b,0x5e,0x45,0xc5,0xd3,0xd5,0x1f,0x6c,0xa0,0x62, - 0x2d,0x5e,0x2a,0x8b,0x38,0x8a,0x98,0x1b,0xa2,0x17,0xfb,0xb9,0x7c,0x4d,0x13,0xcf, - 0xe9,0x9c,0x49,0xde,0xc1,0x1c,0x9d,0x7f,0xf0,0x11,0x3b,0xf9,0x10,0x27,0xd2,0x1f, - 0x11,0x5d,0x1d,0x8f,0x80,0xee,0xb4,0x6b,0x76,0x21,0xd1,0x6e,0x40,0xf2,0xa7,0x78, - 0xfc,0x3c,0x87,0xd8,0xd2,0x4e,0x1d,0x41,0xb7,0x38,0x66,0x5c,0x88,0x6e,0x5d,0xf8, - 0xbe,0x81,0x67,0x87,0x49,0x10,0xf2,0xc1,0x93,0x9d,0xc8,0x10,0x74,0x26,0xf6,0x2b, - 0x9e,0x25,0xa4,0x07,0xbe,0xb9,0x13,0x72,0x8a,0xaf,0x99,0x7c,0x6e,0xf0,0xe4,0x2a, - 0x4f,0x6f,0x05,0x20,0x7b,0xbe,0x71,0x93,0x59,0xfa,0xf4,0xe7,0x4f,0xb2,0x7a,0xda, - 0xa8,0x06,0xc8,0x03,0xca,0x2b,0x95,0x00,0xf5,0x49,0x29,0x01,0x28,0x19,0xdd,0x99, - 0xf4,0xf6,0x9e,0x66,0x63,0x98,0x0a,0x93,0xa6,0x1c,0xda,0x6e,0xc4,0x8d,0xca,0x57, - 0x46,0x01,0x31,0xfc,0xc4,0x4d,0xf8,0x4a,0xc0,0xca,0x61,0x10,0x3c,0x91,0x17,0x70, - 0xc8,0x3d,0x81,0x11,0x39,0x00,0x15,0x60,0x41,0x5d,0xa6,0x90,0xa0,0x76,0x6d,0x1e, - 0x2c,0xbf,0x24,0xd8,0x04,0x34,0x75,0x2f,0xe9,0xfe,0x80,0x84,0x92,0xb9,0xc1,0xa2, - 0x45,0x0d,0xa8,0x0e,0xf5,0x12,0x10,0xc4,0x98,0x2e,0x3e,0xfd,0xfa,0x85,0x38,0x91, - 0x08,0xe6,0x8f,0x2c,0x48,0x8c,0xb0,0xae,0x84,0x99,0xa2,0x8f,0xc9,0x89,0x67,0x38, - 0x91,0x09,0x5e,0xf8,0x52,0xd9,0xb7,0x2a,0x46,0x9d,0xa5,0x2d,0xe9,0xc2,0x55,0x9a, - 0x9d,0x83,0xce,0x82,0x69,0xc2,0x2e,0xde,0x4f,0x10,0xbe,0xcb,0x6c,0x68,0x95,0x40, - 0xdd,0xea,0x55,0xd6,0x00,0x6e,0xf0,0xaa,0xd3,0x5a,0x9f,0x75,0x00,0xd3,0x58,0x25, - 0x61,0x54,0xb3,0x8e,0xa2,0x68,0x57,0x9c,0xf8,0x52,0xc4,0xc6,0xc2,0xf3,0x1a,0x8d, - 0xc3,0x4c,0xf0,0xc1,0x44,0x4c,0xa8,0x83,0x4f,0x8a,0x8c,0xbd,0x60,0x34,0x72,0xe8, - 0x00,0x95,0xb9,0x07,0x99,0x15,0xe2,0x8d,0xb5,0x6e,0x36,0xa4,0x37,0x16,0xbe,0xfb, - 0x4a,0x00,0xdf,0xe6,0xac,0xb9,0x17,0xc0,0x99,0xac,0xb5,0xe6,0x0f,0xe9,0x14,0x5e, - 0x73,0xc5,0xd7,0xe6,0xb1,0xa4,0x72,0xbb,0x58,0xc9,0x2e,0xb8,0xd6,0x53,0x1c,0x32, - 0xe9,0x57,0xcf,0xf1,0xd7,0x2a,0xee,0x10,0x2b,0x0d,0x51,0xcb,0xab,0xdd,0xf3,0xe5, - 0xfd,0xde,0x67,0x0d,0xe5,0x1d,0x58,0x75,0xbc,0xc6,0x77,0xdd,0x2f,0xe0,0xb7,0x17, - 0xb2,0x8b,0xba,0x17,0xc2,0xf5,0x9f,0xae,0xc2,0x98,0xf2,0x63,0x74,0x93,0xfe,0x8c, - 0xa7,0xe9,0xcf,0x71,0xf4,0x45,0xf5,0x77,0xc9,0x5f,0x15,0x50,0xef,0xd0,0xf2,0xaa, - 0x38,0x8e,0xb8,0x57,0x52,0xe9,0x93,0x0a,0xea,0xb7,0x74,0x72,0xcd,0x5f,0xb3,0x35, - 0x95,0x96,0x04,0x08,0xd2,0xa6,0x8c,0x9a,0x8b,0xb9,0xa4,0x74,0xe0,0xcf,0x13,0x32, - 0xd5,0x35,0xd2,0x0a,0x87,0xf9,0x92,0x7d,0xb5,0x6d,0xc5,0xa1,0x6a,0xcd,0x7b,0x17, - 0x7c,0x2e,0x3f,0xb9,0x1d,0x2e,0x11,0x5a,0xfd,0x96,0x39,0xba,0xe9,0xb7,0xcd,0x78, - 0xda,0xef,0x98,0xe3,0xa8,0xdf,0x7d,0x28,0x78,0x72,0x22,0x9b,0x14,0xc0,0xcf,0x06, - 0x77,0x01,0xf5,0xbf,0xac,0xbc,0xa6,0x9e,0xcd,0x56,0x18,0xe7,0xfe,0x9d,0xb7,0x2d, - 0x56,0x5d,0x48,0xa8,0x8c,0xf5,0x95,0x8f,0xeb,0x91,0x46,0x42,0xcb,0x45,0x64,0x18, - 0x2e,0xd1,0x5d,0xb8,0x2f,0xdd,0x43,0xf9,0x16,0x5c,0x8c,0x4f,0x6a,0x48,0xbf,0x5b, - 0xf8,0xfd,0xc0,0xb7,0x97,0x8a,0x5e,0xc9,0xf2,0x36,0x3c,0x0b,0x07,0x99,0x8b,0xa9, - 0x4a,0xa2,0xd3,0x18,0x1c,0x25,0xb3,0x8a,0xb8,0xa8,0x54,0x6e,0x75,0x28,0xdb,0x35, - 0x2a,0xb3,0xd9,0x34,0x5c,0x4b,0xf2,0xbf,0xbf,0xc9,0xea,0x28,0x8c,0x82,0x05,0xbd, - 0x65,0x9d,0x0a,0x58,0x2d,0xe9,0x5c,0x92,0x6a,0x6e,0x54,0x41,0xf9,0x98,0xa3,0x5e, - 0xe2,0x1c,0x33,0xa8,0x0f,0x36,0x1e,0x09,0x60,0x9c,0x69,0xb4,0xac,0x2a,0x60,0xd1, - 0xca,0xd0,0x83,0x4f,0x31,0xb5,0x37,0xa4,0xdb,0x10,0x9b,0x88,0x33,0x03,0xf1,0x0f, - 0xb2,0x0b,0x4d,0x16,0x28,0xef,0xb3,0x5b,0x63,0x79,0x5b,0xb1,0x37,0xa0,0xb0,0x79, - 0x0b,0x20,0x1d,0xd1,0x09,0xc4,0x85,0xf4,0xd8,0x67,0x27,0x05,0x8e,0xe1,0x01,0x7f, - 0xf8,0xe1,0x58,0x93,0x67,0x57,0x6e,0x3b,0x61,0x3d,0x39,0x69,0xea,0xdb,0x49,0xbd, - 0xe8,0x9c,0xc0,0x3a,0x64,0xc6,0xfe,0x44,0x5e,0xe3,0x54,0x92,0x28,0x38,0x27,0x75, - 0x65,0xf0,0xa3,0x70,0xf8,0xbb,0x21,0x14,0x6a,0x20,0x31,0xa1,0x4c,0xa8,0x0d,0x3a, - 0x29,0x7b,0x94,0x41,0x27,0xcd,0x42,0xeb,0x1c,0x88,0xb2,0xa2,0x5b,0xca,0xe0,0x05, - 0xf7,0xdc,0x46,0xd1,0x7c,0x3f,0x9d,0x27,0x9f,0x43,0x0c,0xe5,0x4b,0x47,0x91,0x6a, - 0x30,0xf8,0x78,0x67,0x7f,0x0f,0x35,0x54,0x73,0x96,0x4b,0xfd,0x0f,0x4a,0xdd,0xe9, - 0xe2,0xc3,0x27,0xe6,0x3c,0x9f,0x85,0x89,0x3b,0x7b,0xad,0xcc,0xdf,0x71,0x72,0xd0, - 0x3a,0x9c,0x6c,0xeb,0x13,0x4d,0xdf,0x9e,0x6d,0xeb,0x33,0xbd,0xdf,0x98,0x41,0x0a, - 0xfe,0x84,0x94,0xf9,0xb6,0x3e,0xd7,0xfb,0xf4,0x6f,0xee,0x19,0x13,0xc0,0xe0,0x86, - 0x6b,0x8e,0xcc,0xf4,0x1d,0x95,0xad,0xe2,0xfb,0xb9,0xe8,0xd2,0x77,0x20,0x1c,0x0e, - 0x5c,0xf4,0x40,0xd8,0xda,0x1e,0xb1,0xf3,0xc1,0xd6,0x76,0x23,0x3e,0xdc,0xd2,0x5e, - 0xc5,0xf0,0x8b,0x7d,0x06,0x0a,0xbe,0x86,0xaa,0xc5,0x5e,0x59,0x88,0xa5,0xba,0x06, - 0x28,0x17,0xc9,0xdf,0x31,0x47,0xba,0xe2,0x07,0x7a,0xf0,0x81,0x98,0x77,0x22,0x46, - 0x53,0x23,0x2d,0x65,0x76,0x5b,0xf9,0x47,0x60,0x94,0xb6,0x96,0xbc,0xd5,0xb3,0x26, - 0x40,0xa3,0xe2,0x1b,0x42,0xa2,0x95,0x7c,0x66,0xa1,0xbb,0xd6,0x43,0xc1,0x1a,0x24, - 0x5b,0x2d,0x04,0x67,0xae,0x8e,0xcd,0x4c,0x91,0x73,0x2b,0x2c,0x17,0x1c,0x9c,0x5b, - 0x3e,0x79,0x5c,0x8a,0xfe,0xe8,0x89,0xc7,0xb9,0x2d,0xcb,0xd2,0xf3,0x16,0xc6,0xba, - 0x3a,0xe2,0xb8,0xea,0x6a,0x34,0x54,0xee,0x79,0xc5,0x16,0xbe,0x62,0xf4,0x15,0xb8, - 0x88,0xb3,0x83,0x4f,0x70,0xcb,0xd0,0xe2,0xf4,0xe6,0xb1,0x1a,0xd1,0x7a,0x83,0x16, - 0x5c,0xff,0x1c,0xa2,0xb5,0x06,0xe8,0x05,0x23,0xa4,0xb5,0x08,0x39,0x3a,0xb2,0x61, - 0x6c,0x8b,0x12,0x3f,0xf1,0xa3,0xd8,0xf8,0x74,0x8b,0x85,0x0f,0x64,0x7f,0x9d,0x5f, - 0xef,0xe0,0x6d,0x32,0x18,0x4d,0xf0,0xd6,0xbd,0x75,0x26,0x8d,0x8e,0x61,0xea,0xff, - 0xd0,0xd3,0x0a,0xe9,0x9b,0xc9,0xc0,0x21,0x47,0xa6,0xfe,0xeb,0x4f,0xda,0x8f,0xf8, - 0x28,0x3a,0xa0,0x5e,0x79,0x9c,0x90,0xce,0xc3,0x4c,0x6b,0x7f,0xb0,0x6f,0x35,0xdb, - 0xf3,0x82,0xb1,0x6e,0x56,0x14,0xc7,0x60,0x77,0x98,0xc9,0x95,0xb0,0xf1,0xac,0x5f, - 0xe5,0x99,0x65,0xdd,0x8c,0x2d,0x7a,0xc5,0xc9,0xd4,0x27,0x3f,0xcd,0xb3,0x22,0xef, - 0x81,0x5a,0x6b,0xa7,0x67,0x67,0xef,0xb0,0x40,0x04,0x8a,0x0e,0xe5,0xc3,0xf8,0xce, - 0x3e,0x9e,0x52,0xb4,0xe4,0xd8,0x8f,0xd2,0xc2,0x47,0xc0,0xe5,0x01,0x16,0xda,0xf9, - 0xef,0x19,0x78,0x6c,0x4e,0x53,0xe1,0x23,0x8b,0x9d,0x2a,0xc5,0x22,0x18,0x66,0xb9, - 0x24,0xf3,0xec,0x98,0x4a,0x42,0x19,0x67,0x7c,0x6d,0xe2,0x71,0x18,0x75,0x0c,0x35, - 0xe0,0x67,0xa9,0xe8,0x39,0x15,0x8d,0x61,0xbd,0x33,0xf0,0x62,0x64,0x3c,0x68,0x63, - 0xe7,0x3c,0x6d,0xe6,0x2b,0x45,0xcb,0xdb,0xd6,0xb5,0x1d,0x9e,0x04,0x14,0xe7,0xa4, - 0xb4,0xd2,0x6b,0x17,0x5d,0x88,0x0b,0xb5,0x26,0x94,0x98,0xaf,0xc6,0x69,0x69,0xbd, - 0xf3,0xdf,0xb5,0x3f,0x17,0xce,0xc2,0xc1,0x3a,0xc9,0xed,0x57,0xfa,0x0d,0x99,0xca, - 0x1d,0xe2,0x43,0xb1,0x6c,0xf8,0xd6,0x74,0x5a,0x14,0x89,0xbd,0x28,0x4c,0x4f,0x51, - 0x88,0xd6,0x48,0x47,0x95,0xe0,0x27,0x35,0x2f,0x5d,0x83,0xac,0xd0,0xbb,0x13,0xcc, - 0x75,0xc3,0xfb,0x7b,0xbd,0x89,0xa4,0x95,0x9c,0xb9,0xb1,0x3f,0x24,0xc7,0x88,0x05, - 0x80,0x55,0x40,0x2c,0xd4,0x54,0x5e,0x6a,0xb1,0xe4,0x28,0xf0,0xe2,0x73,0xda,0x24, - 0x39,0x29,0x0f,0x74,0x1b,0xa6,0xda,0x08,0xec,0xf9,0x42,0x21,0x7e,0x7d,0x3b,0x2b, - 0x25,0x1b,0x2b,0xdc,0x98,0x66,0xc1,0xdc,0x1b,0xc6,0x59,0xc4,0xd1,0x41,0xba,0x4f, - 0xa5,0x98,0xa6,0xec,0xb3,0xd8,0x13,0x47,0x59,0x87,0xb1,0x97,0x77,0x9e,0xbe,0x95, - 0x0f,0x18,0x0d,0x1b,0xb7,0xe4,0xb9,0xc7,0x37,0x14,0x0c,0xbc,0xa2,0x90,0xa3,0xbd, - 0x57,0xd7,0x44,0x79,0x99,0xe8,0xe6,0xde,0x94,0x13,0x2f,0xc0,0x01,0x67,0xa8,0x78, - 0x50,0x52,0x38,0x5c,0x68,0x5b,0x1b,0xe4,0xba,0x26,0xfb,0x60,0x27,0x4b,0xdf,0xd1, - 0x1a,0x45,0x57,0x4b,0x23,0xe7,0x6b,0xc9,0xe5,0x0d,0x23,0xe7,0x5e,0x26,0xce,0x80, - 0xf1,0x85,0xb9,0x18,0x87,0x1d,0x5c,0xf1,0xa0,0xef,0xef,0x6f,0x31,0x38,0xae,0x32, - 0x03,0x0c,0x33,0x81,0xf9,0x80,0x5e,0xc1,0x15,0x61,0x18,0x95,0x80,0x4f,0x3c,0x01, - 0xae,0x74,0xd7,0x16,0xf3,0x14,0x7e,0x6d,0xb7,0x96,0x2f,0x82,0x98,0xf3,0xe8,0x53, - 0xc7,0x3b,0x62,0x3d,0x79,0x97,0x65,0xd7,0xf3,0xb4,0x2d,0x51,0x8e,0x48,0xaf,0xe2, - 0xb2,0x97,0xa5,0x08,0x97,0xe6,0xad,0x6d,0x1e,0x7f,0x6e,0x62,0xdb,0xd3,0x9c,0x3b, - 0x79,0x1f,0xa8,0x89,0x7c,0x3a,0x3d,0x7d,0xb9,0x40,0xc6,0x3d,0x58,0x43,0x9e,0x26, - 0xf4,0xb4,0x31,0x90,0x9d,0xcd,0xb7,0x11,0xae,0x49,0xc4,0xb2,0x05,0x2e,0x1c,0x00, - 0xb7,0xb6,0xad,0x78,0xe6,0xa2,0xa2,0xae,0xb2,0x30,0xc2,0x49,0xa0,0x0b,0x28,0x4a, - 0x08,0xf4,0x98,0x84,0xd1,0x50,0xbc,0x45,0xc3,0x4e,0x63,0x27,0x40,0x74,0xbd,0x53, - 0xb4,0xf7,0xdf,0xdf,0xb7,0x31,0x64,0xee,0x35,0x0a,0x87,0xb0,0x79,0x7f,0xc3,0x28, - 0x0d,0x20,0x37,0xec,0xee,0x0d,0x36,0x20,0x91,0x82,0x36,0x0c,0x6f,0x7e,0x84,0x06, - 0x06,0xf0,0x29,0x9e,0x95,0x9f,0xd1,0x37,0xb5,0x7c,0x89,0x55,0x2f,0x1d,0xe6,0x28, - 0xb0,0xe2,0x7a,0x07,0x0f,0xe4,0x2e,0xad,0x18,0x0f,0xa0,0x1b,0x50,0xcc,0x84,0xff, - 0x30,0x81,0x78,0xe7,0x29,0xd0,0x85,0x06,0x9e,0x33,0xdd,0x98,0x33,0x11,0x97,0x0b, - 0x06,0x29,0x26,0xf4,0xaa,0x93,0xf7,0x5b,0xf6,0x99,0x27,0x01,0x79,0xb7,0x28,0x88, - 0x3b,0x1f,0x67,0xd0,0xac,0xcc,0xf9,0xad,0xc8,0xc4,0xd8,0xa6,0x85,0x4c,0xbe,0x09, - 0x82,0xf2,0xe3,0xdc,0x37,0x96,0xf3,0xdb,0x6d,0x50,0xa5,0xe6,0x7e,0x73,0xd8,0x7e, - 0xd8,0xb8,0xc4,0x38,0xd4,0xc1,0x95,0x73,0x46,0xf8,0x4f,0xc3,0x9e,0x87,0x8b,0xc4, - 0x99,0x50,0x42,0xf6,0x8e,0x9d,0xfc,0x21,0xfc,0x12,0x0c,0x9c,0xa1,0x0c,0xd6,0xc7, - 0x81,0x96,0xf4,0x66,0xd3,0x1e,0x8f,0x75,0x79,0x05,0x08,0x08,0xcd,0xf3,0xce,0xe8, - 0xc5,0xc4,0x79,0x09,0xab,0x7b,0x69,0xe1,0x93,0xb1,0x04,0xc9,0x61,0x67,0xc0,0x5f, - 0xff,0x09,0x48,0x31,0xd4,0x89,0x11,0xe9,0x90,0x34,0x72,0x2e,0x5d,0xff,0x04,0x66, - 0x40,0x72,0x23,0xc2,0xa0,0x24,0xbf,0x5e,0x9b,0xf2,0xfa,0xc4,0xed,0xd0,0xdd,0x51, - 0x01,0xd5,0x6c,0x1b,0x3f,0x36,0x6e,0x9a,0x3d,0x63,0xbb,0x63,0xde,0x0d,0x67,0xcd, - 0x5e,0xb3,0x71,0xdd,0x84,0xb9,0xee,0xc0,0xac,0xf1,0xef,0x8f,0x0d,0x28,0x82,0xa2, - 0x9c,0x7b,0xc8,0x9d,0x9f,0x07,0x8d,0x5b,0xf3,0xce,0xe8,0x5f,0x5a,0x68,0x76,0x10, - 0x5f,0x2c,0x4d,0x4a,0x88,0x34,0xe8,0x37,0xec,0x56,0x4f,0xc0,0x46,0x85,0x14,0x0c, - 0x18,0x49,0xc5,0x50,0xc7,0x17,0x48,0xb5,0xf8,0x0e,0xf4,0x84,0x79,0x73,0xe1,0xe2, - 0x44,0x70,0xd1,0x8f,0xf0,0xbd,0x52,0x98,0x1c,0xe2,0x86,0x2e,0x9b,0xa1,0xfd,0x8f, - 0x83,0xbe,0xc8,0x8d,0xfc,0x8b,0x79,0xd3,0xec,0xf0,0xcd,0x23,0x05,0x67,0xf1,0x6a, - 0xed,0xaf,0xce,0x1d,0xbd,0x33,0xd0,0x60,0xfd,0x22,0xf3,0x92,0xe2,0xef,0xcd,0xcd, - 0xba,0x17,0xf0,0x44,0xf9,0x41,0x7a,0x19,0x7f,0xe4,0x2d,0x22,0xe9,0x6a,0x62,0x3b, - 0x99,0x29,0x9f,0x9f,0x71,0x10,0x55,0x09,0x4b,0x6c,0x67,0x73,0xd3,0x46,0x55,0x2c, - 0x27,0xba,0x63,0x1a,0x35,0x62,0x88,0xbf,0x85,0xc3,0x3d,0xb4,0x7c,0xf2,0xd3,0xd0, - 0x72,0xa4,0x78,0x7f,0x8a,0x7e,0xd3,0x45,0x56,0xd0,0xb4,0xe9,0x42,0x39,0x5d,0x48, - 0xcf,0x3f,0xe4,0x28,0x8e,0x19,0x50,0x56,0x4c,0x9f,0x85,0x1c,0xca,0x7b,0xef,0xc5, - 0xa3,0x87,0xea,0x79,0x9a,0xf4,0xfa,0x36,0x5d,0x5a,0x56,0x1e,0xe3,0x96,0x0f,0x21, - 0x0d,0x1d,0x2f,0x77,0x65,0x37,0x73,0x69,0x9f,0x6e,0x6e,0x4e,0x2d,0xf4,0x07,0xf1, - 0x93,0x8f,0xc1,0xc4,0x31,0xd4,0x0f,0xe0,0x35,0x40,0xa8,0x92,0x9f,0x1c,0xc0,0x42, - 0xa7,0x41,0x2d,0x9a,0xe8,0x70,0x78,0x9b,0x9c,0xb9,0x23,0xc0,0xa0,0x4b,0xf2,0x2b, - 0xf2,0x2b,0x6d,0x58,0xe2,0x66,0x27,0x67,0x57,0x3c,0xda,0x27,0xee,0xc1,0x98,0xd9, - 0xeb,0x7e,0xd2,0x1c,0x81,0xa3,0xe7,0x93,0xaa,0x8a,0x6a,0xce,0x2d,0xb4,0x88,0xbe, - 0xfb,0x66,0x19,0xb2,0xe5,0x07,0x03,0x53,0x33,0xc8,0x93,0xdb,0xa4,0x5a,0xd5,0x8d, - 0x56,0x61,0x65,0xdd,0x63,0x71,0x55,0x65,0x1f,0xcc,0xf6,0x6e,0x8b,0x6c,0x67,0xf2, - 0x2d,0x71,0x3e,0xc0,0x57,0x23,0xa4,0x67,0xcf,0x7d,0x0b,0xaf,0x0a,0x65,0x49,0x57, - 0x3e,0xd1,0xa3,0x96,0x5b,0x05,0x75,0x9a,0xd4,0xd3,0x81,0xfe,0xfd,0xa0,0xcd,0x6a, - 0xe6,0xde,0xea,0x94,0x28,0x9f,0x29,0x4b,0xf2,0x6b,0xd8,0x4a,0x37,0x04,0x45,0xb5, - 0xc1,0x73,0xc3,0x92,0xae,0x47,0xd0,0x0b,0xa2,0x31,0xda,0x60,0x9e,0xd0,0x6e,0x21, - 0x5c,0x4f,0xda,0x87,0x02,0x44,0x7a,0x41,0xbd,0x72,0x4e,0xf8,0x7a,0x7a,0x01,0x82, - 0x6a,0x8d,0x4c,0x3e,0xdb,0xfa,0x3b,0xdf,0x56,0xdf,0x1a,0x90,0x5f,0x46,0x36,0xe3, - 0x43,0xa1,0x2d,0x42,0xc2,0x61,0x44,0xaf,0xd0,0x0f,0xdb,0x80,0xa6,0x69,0xa2,0x6e, - 0xd2,0x0c,0x0b,0x37,0x28,0xec,0x28,0x6e,0xa0,0x64,0xcc,0xe6,0x01,0x7f,0x88,0xbf, - 0x0f,0x9a,0xbb,0xbb,0x87,0xbd,0x3e,0xff,0xdc,0x7b,0x71,0xd8,0x15,0x3f,0x5f,0xec, - 0x1f,0x76,0xfa,0x6d,0x8a,0x80,0x13,0x54,0x5d,0xa0,0xe8,0x91,0xf5,0x31,0xc0,0xab, - 0x06,0xea,0x73,0xe4,0x13,0x37,0x0e,0x3d,0xfb,0xae,0xef,0xfa,0xf4,0x44,0xfa,0x08, - 0x5f,0xb5,0x1e,0x88,0x57,0x9c,0xc3,0x5b,0xf9,0x72,0x75,0xc4,0x0f,0xa7,0x43,0xc2, - 0x28,0x88,0x26,0x4e,0x44,0x4f,0x29,0x2d,0x62,0x4a,0x11,0xef,0x3c,0x83,0xea,0xdf, - 0xdd,0x76,0x7f,0xec,0x82,0x7c,0x85,0xc5,0x40,0x6f,0xb9,0x24,0x4e,0x89,0x19,0xd0, - 0xbd,0x7f,0xa8,0xb3,0x4c,0x0a,0x1c,0x17,0xe4,0x4b,0xf1,0x81,0x7d,0x1a,0x3a,0x09, - 0x69,0x52,0x28,0xcb,0x24,0xc2,0x15,0xc3,0x9c,0x7a,0xce,0xed,0x80,0xd6,0xa7,0xe9, - 0x02,0x1f,0x8b,0xfb,0x98,0xd0,0x04,0x15,0x5b,0x8e,0x06,0x1f,0x7d,0xa7,0xbb,0x0b, - 0xdb,0xba,0x68,0x58,0x2f,0xea,0xf2,0xb8,0x36,0x8b,0xc8,0x13,0x80,0x2f,0x46,0x68, - 0x4a,0xb1,0x2c,0x95,0x67,0x50,0xe7,0x87,0xf2,0x35,0x7e,0x0c,0x2b,0xab,0xe6,0x9d, - 0x18,0x30,0xdf,0x17,0x5e,0x0c,0x2a,0xaa,0xd7,0x9f,0x12,0xd1,0x58,0xcb,0xc8,0x42, - 0xb4,0xa9,0x95,0xf7,0x77,0xf3,0xf1,0x91,0x1a,0xe8,0x4d,0x9c,0xf2,0x49,0x37,0x00, - 0x12,0xe7,0xb3,0x66,0xfd,0xf4,0x31,0x0e,0x9f,0xdc,0x7c,0x50,0x8a,0xc0,0x9a,0x55, - 0xae,0x90,0xa2,0xe0,0x88,0xf4,0xe4,0xa6,0x4d,0x7f,0xd2,0x83,0x09,0xc7,0xf1,0xf1, - 0xf8,0x98,0x7a,0xa5,0x06,0x2a,0x7a,0x42,0xc5,0x09,0xca,0x5d,0x70,0x57,0x5f,0xf2, - 0x01,0xaf,0xd4,0x1c,0x40,0x54,0x25,0xea,0xcf,0x83,0xf1,0x94,0x0d,0x9e,0x23,0x75, - 0xd5,0x3b,0x9c,0xc6,0x27,0x74,0x30,0xfa,0x9d,0xd3,0xc2,0x7c,0xe5,0x0a,0xeb,0xaa, - 0x1b,0x95,0x50,0x53,0xde,0xcd,0xc1,0xe0,0xc1,0xe2,0x82,0x10,0xcf,0xc0,0x48,0x2f, - 0xf6,0x0a,0x27,0xa8,0x2c,0x3b,0x8d,0x03,0xaf,0xeb,0x42,0x27,0xa1,0xdd,0xed,0x13, - 0x38,0x8d,0xe2,0xdd,0xcb,0x38,0x96,0x5a,0x8b,0x6c,0x38,0x45,0xe3,0x6d,0x48,0x72, - 0xfc,0xf1,0xa1,0xbe,0xf9,0xbc,0xdd,0xd9,0xef,0xbc,0xe8,0x0d,0xf8,0x95,0x47,0xfd, - 0x55,0x3c,0xb7,0x3d,0xef,0x60,0x3c,0x13,0x9a,0x92,0xda,0xe7,0x21,0x3d,0xae,0x9b, - 0x3e,0x5a,0xa6,0x6f,0x73,0xbf,0xd4,0x2a,0xd5,0x4a,0xaf,0x81,0xea,0x79,0xf5,0x67, - 0x2b,0x7b,0x89,0xbc,0xf4,0xb2,0x7a,0x4a,0x12,0x3b,0xf4,0x34,0x7a,0x20,0x4f,0x96, - 0x63,0x6d,0x8a,0x1b,0xdf,0xc2,0x87,0xc7,0xb7,0xaa,0x4f,0x1d,0x1e,0xdd,0x31,0x7f, - 0xeb,0xc2,0xaf,0x3f,0x09,0xdc,0x68,0xc2,0x31,0x8a,0x87,0x5f,0xb4,0xdc,0xaf,0x88, - 0x2f,0x24,0x6e,0x01,0x90,0xc0,0x85,0x4b,0xb6,0x94,0x3e,0x6d,0xef,0x26,0xc3,0x2a, - 0xf1,0x47,0xbe,0xa8,0x47,0x0f,0x11,0x54,0xca,0x32,0xf8,0x33,0x2b,0x22,0xed,0x7c, - 0xf0,0x31,0xa4,0x56,0xeb,0xa5,0x69,0xca,0x16,0x47,0x71,0xf0,0x5b,0xa5,0x43,0x72, - 0x78,0xc3,0xda,0xd0,0xd2,0x6c,0xe7,0xa8,0x89,0xda,0xb2,0xb9,0x09,0xed,0x89,0x23, - 0x32,0x11,0xb8,0xfb,0xf1,0x90,0x4d,0x59,0x95,0x2c,0x2c,0xb6,0x12,0x81,0x98,0x0e, - 0x2e,0xf8,0x2d,0xda,0x6b,0x72,0x20,0x17,0x21,0xa6,0x96,0xa3,0xc5,0x68,0xe4,0x39, - 0x71,0x5f,0x52,0x03,0xb5,0x7c,0x65,0xe4,0x18,0xe9,0xb3,0x0b,0xfd,0x21,0xc3,0x40, - 0xac,0xe3,0x26,0xd5,0x9a,0xca,0xcb,0xbf,0xc2,0x23,0x34,0x1d,0xdf,0x33,0x25,0xbc, - 0xb7,0x2c,0xf1,0x68,0xa4,0xed,0x6c,0x76,0x72,0x85,0x08,0x49,0xd6,0x9e,0x55,0x56, - 0xfa,0x69,0x73,0xca,0xea,0xa5,0x87,0x41,0x2a,0xfa,0xff,0xd5,0x13,0x21,0xe4,0x20, - 0xa5,0xf3,0xa0,0x47,0xb4,0x9b,0x9c,0x4a,0x94,0xb2,0x08,0xf6,0xf2,0x51,0x4e,0x68, - 0xe8,0x25,0x8e,0x8d,0x15,0x5b,0x29,0xd7,0x8e,0x29,0x5b,0x30,0x94,0xe3,0x59,0x99, - 0x46,0x49,0x79,0xb8,0x3c,0x0a,0x72,0x79,0x81,0x41,0x90,0x68,0x11,0xb2,0x37,0x1b, - 0x9e,0xc8,0xe0,0xfd,0x93,0xbe,0x21,0xdb,0xed,0xbc,0xd8,0xdb,0x37,0x36,0x37,0x45, - 0x2e,0xc5,0xf0,0x15,0xbf,0x5f,0x0d,0xdb,0xdd,0xcd,0x4d,0xe5,0x28,0x46,0xb6,0x80, - 0x27,0x8a,0xe2,0x67,0x21,0x5a,0x58,0xc1,0x57,0xb6,0xfa,0x6a,0x08,0x4a,0x25,0xe3, - 0x59,0x21,0x72,0xa0,0x1c,0x1c,0x64,0x3c,0x75,0xde,0x82,0x98,0x29,0xfa,0x4a,0x76, - 0x7d,0x38,0x17,0xe6,0x6a,0x78,0xb1,0xb1,0x4c,0xfa,0xfa,0xe7,0xb3,0xa3,0x9d,0x63, - 0xdb,0xb7,0x27,0xb6,0xd6,0x40,0x3f,0xa2,0x39,0x2c,0x34,0x99,0x07,0xcd,0x69,0x5f, - 0x7f,0xd9,0x6e,0x59,0xbb,0x9d,0x5d,0x1d,0x8f,0xd4,0xf5,0xbd,0x8e,0x05,0xbf,0x62, - 0x48,0x7e,0xa1,0xe3,0xc9,0xba,0xbe,0x8b,0x2f,0x87,0x61,0x1b,0x47,0x8b,0x38,0x89, - 0x40,0x52,0xb3,0x45,0xa5,0x5d,0x6b,0xbf,0xd5,0xe2,0x4a,0x9d,0xdd,0x16,0xd7,0x69, - 0xb7,0xea,0x2a,0x69,0x8d,0x8f,0x76,0x14,0x05,0x37,0xb2,0xcb,0x3d,0x6b,0xf7,0x45, - 0x5d,0x97,0xfb,0x15,0xb5,0x3f,0xb8,0xe9,0x68,0x77,0xad,0x96,0xac,0xda,0xee,0x88, - 0x9a,0x2f,0xeb,0xfa,0xed,0x6b,0x67,0x47,0xa6,0xf6,0xdb,0x11,0xd7,0xed,0x74,0xad, - 0x76,0x79,0xa6,0xfb,0x75,0xdd,0xf6,0xb5,0xff,0xf9,0xfe,0xf5,0x1a,0x35,0xd3,0x6e, - 0x7f,0x8a,0xec,0x6f,0xae,0xf7,0x94,0xbe,0xde,0x7c,0xde,0xf9,0xfc,0x6b,0x1e,0x38, - 0xfb,0x7b,0x2f,0xad,0xbd,0xf6,0xfe,0x9a,0x35,0x5f,0x3b,0x21,0x06,0x7d,0x4d,0xe4, - 0x6a,0x62,0xed,0x74,0x35,0xb3,0x85,0x69,0x17,0x46,0x7a,0xfc,0xcd,0x01,0xf9,0xe2, - 0xd4,0x09,0x17,0x23,0x20,0x26,0xe5,0x01,0xf4,0xba,0x9d,0xc7,0x10,0xe2,0xcd,0x67, - 0xad,0xd7,0xed,0x7e,0xf8,0xe5,0x9b,0xd6,0x78,0x1f,0xf8,0x97,0xda,0x29,0xfa,0x8e, - 0x71,0x0b,0x90,0x6e,0xed,0xed,0xb6,0x1e,0x1b,0x84,0xd2,0x82,0xda,0x7f,0xae,0x76, - 0x3d,0x00,0x3e,0x3a,0xe8,0x6b,0xef,0x81,0xa2,0x1b,0xaf,0x82,0x5b,0x71,0xd8,0x1f, - 0x61,0x77,0xfd,0x2f,0xc7,0xc6,0x7a,0x02,0xa1,0x5e,0x58,0xdd,0x17,0x8f,0x02,0x4c, - 0xa9,0x56,0xc4,0x65,0xa5,0x7e,0x7d,0xb7,0x78,0xe1,0x78,0x71,0x69,0x7b,0x38,0xe3, - 0x74,0x96,0x15,0xf5,0x04,0x26,0xef,0x95,0xea,0xed,0xef,0xed,0xaf,0x31,0xcd,0xb4, - 0xde,0xd9,0x8d,0x9b,0x7c,0x63,0xf0,0x3c,0x05,0xab,0xfe,0xe1,0x3a,0x89,0x6f,0xcf, - 0x0b,0x53,0xec,0xb4,0xac,0x4e,0xed,0x82,0xec,0x96,0xea,0x16,0x71,0x32,0x57,0xbf, - 0x0a,0xc4,0x1b,0x5f,0x94,0x93,0xf4,0x7c,0xe0,0xbd,0x65,0x16,0x31,0x78,0x45,0xb8, - 0x60,0x55,0xb0,0x13,0xae,0x4d,0xa4,0xf2,0xa0,0xc7,0x9c,0x0f,0x1c,0x2e,0x02,0x1c, - 0x1f,0xf3,0x05,0xac,0xbe,0xc6,0x53,0x00,0xa1,0x07,0xff,0xc2,0x60,0x34,0x1a,0x13, - 0x7c,0xc3,0x1f,0xab,0xa5,0x93,0xb0,0x65,0xdf,0xdf,0xa7,0xdc,0x52,0x53,0x3c,0xb6, - 0x6f,0x87,0xb6,0xe2,0xbc,0x64,0xde,0x01,0x33,0x54,0x7d,0x99,0xf2,0xf1,0x8c,0x7a, - 0x32,0x9c,0x91,0xe0,0x4c,0xb7,0x17,0xee,0x17,0x0c,0xbd,0x21,0x3e,0xef,0xf0,0xb3, - 0xd0,0x47,0x3e,0x58,0x6a,0x11,0x28,0xaf,0x29,0x62,0x41,0x1e,0x26,0x1a,0xee,0x9f, - 0x54,0x21,0xf8,0xe9,0x37,0x09,0xa2,0x2c,0xed,0xec,0xad,0x84,0x56,0x96,0x76,0x7c, - 0x5a,0x02,0xdc,0xcd,0x37,0x72,0x7d,0x7a,0xeb,0x52,0x48,0x36,0xc9,0xf2,0xd5,0x78, - 0x8c,0xe6,0x78,0x11,0xe5,0xa3,0x39,0xf2,0x03,0x77,0x69,0xb8,0x87,0x62,0xbc,0x04, - 0x90,0xc3,0x39,0x2a,0x01,0xf9,0xf4,0x46,0xce,0x25,0xe4,0x6d,0xce,0x1c,0xcf,0x73, - 0xc3,0x81,0x1a,0x3a,0x81,0xe3,0x6e,0x00,0x03,0xa4,0x80,0x59,0xeb,0x04,0x6a,0xdc, - 0xa8,0x8f,0xd4,0x08,0x83,0x34,0x0c,0x6e,0xcd,0xcd,0xa2,0x32,0x14,0x83,0x41,0xb8, - 0x6a,0x08,0x88,0x04,0x34,0x39,0x80,0xcd,0xc4,0x8e,0x67,0x03,0x8c,0x4e,0xa4,0x02, - 0x5b,0x8d,0x0c,0xc1,0x5c,0xb6,0xba,0x49,0x8a,0xf3,0x78,0xf0,0x2b,0x46,0xab,0x94, - 0x8f,0x28,0x4a,0xe7,0xdd,0x5c,0xec,0x0a,0x8c,0x5e,0x5a,0xb8,0x91,0x4f,0x01,0xaf, - 0x60,0xbc,0x07,0xc3,0x96,0x11,0x17,0x23,0x0c,0x53,0x4e,0x7a,0x55,0xb3,0xc1,0x4e, - 0x9a,0xe4,0x31,0x09,0x7f,0x45,0x98,0x43,0x7a,0x17,0x31,0x7d,0xad,0x3a,0x6c,0xc2, - 0x00,0xf2,0x8f,0x5d,0x1f,0xf3,0x88,0xbc,0xbb,0xbe,0xf6,0x6a,0x74,0xc0,0x6a,0xe5, - 0x98,0x1c,0x0f,0x8d,0x2a,0x0c,0xe2,0xec,0xd1,0x8d,0x51,0x44,0x23,0xce,0x88,0xa7, - 0x46,0x11,0x97,0x38,0x63,0x1c,0x91,0x7e,0x0b,0x3d,0x6c,0x6c,0xf3,0xc0,0x5f,0xb5, - 0x0e,0x75,0xad,0x31,0x09,0x9c,0xd8,0xdf,0x4a,0x78,0x8d,0x35,0x5b,0x60,0x02,0x10, - 0x35,0x86,0xb4,0xa1,0x73,0xa4,0xf9,0x78,0x75,0xb0,0xe8,0x32,0xae,0x02,0x76,0x89, - 0x90,0x24,0x15,0xd1,0xb4,0x45,0x38,0xd3,0x14,0xa0,0x26,0xe1,0xcb,0x40,0x06,0x18, - 0xc6,0xf0,0x70,0xf4,0x97,0x16,0xce,0x58,0x52,0x6e,0x1e,0xbb,0x85,0x43,0x29,0x87, - 0x3f,0xcf,0x61,0xe5,0xc5,0xf6,0xf5,0x97,0x01,0xd7,0xc8,0x63,0xdf,0xc3,0x13,0xdc, - 0x19,0xf9,0x72,0x33,0xb5,0xa2,0xd2,0x94,0xef,0xf2,0x72,0x0c,0x33,0x07,0xc7,0x8d, - 0x55,0x1e,0x8e,0xd4,0x5b,0x29,0x26,0x2b,0xe3,0x75,0xfc,0x3d,0x15,0xcb,0xa1,0x5c, - 0xa9,0x64,0xf9,0x8c,0xe6,0xb7,0xec,0xf0,0xc5,0x1f,0x3b,0x0d,0x45,0x3f,0xcd,0x1f, - 0xca,0xe4,0xf5,0xb5,0xca,0x03,0x9b,0xf4,0xc8,0x27,0x3b,0xdd,0x29,0xbd,0x75,0x2c, - 0x5f,0x6d,0xae,0xf3,0x7e,0x94,0xef,0x1e,0xff,0x45,0x07,0x48,0xd1,0xcc,0x5a,0x3e, - 0x90,0x69,0x28,0xcb,0xbf,0xec,0xb7,0xf8,0x4c,0x36,0x25,0x61,0x95,0xa3,0xdd,0x83, - 0x2a,0x70,0x57,0x5b,0x6f,0x08,0x36,0x4c,0x1b,0x0a,0xd1,0xec,0xb3,0xb1,0x64,0xe1, - 0xf2,0x07,0x7f,0x79,0xe0,0xa2,0x2f,0xa3,0x66,0x84,0x85,0x3d,0xfe,0x73,0x40,0xc6, - 0x3c,0xf1,0xe2,0xb6,0x70,0xd8,0xd8,0xdc,0xc4,0x08,0xa3,0x5d,0xc3,0x1f,0xf6,0x06, - 0x1b,0x17,0x6d,0xb3,0x63,0x76,0xcd,0x5e,0xd5,0xab,0xd5,0xe2,0x0c,0xe7,0xe6,0x9b, - 0xbe,0xed,0xd6,0xbb,0x1c,0xba,0x80,0xd3,0xf2,0xfd,0x87,0x38,0x09,0x6b,0xca,0xa2, - 0x0f,0x24,0xda,0xbe,0xc5,0x4e,0x41,0xf3,0x0b,0x0d,0x22,0x25,0x3c,0x6a,0xcc,0x7e, - 0xb6,0xdc,0xa3,0xfb,0xe7,0xcd,0xb7,0xae,0x96,0x0b,0x69,0x22,0x9f,0x8b,0xcc,0xa2, - 0x99,0xcc,0xd3,0xbb,0xde,0xe2,0x89,0x78,0xb9,0xc1,0xb2,0xf7,0x66,0xf1,0xe6,0x3e, - 0x3e,0x1a,0xc7,0x5b,0x1d,0xe6,0x3f,0xc7,0x90,0xcb,0xe2,0x09,0x9a,0xf9,0x20,0x78, - 0xb2,0xfa,0xf8,0xc0,0xd6,0x12,0x9c,0x42,0xcf,0xa0,0xe8,0x4e,0xa7,0xce,0xb5,0xeb, - 0xdc,0xa0,0x1a,0x29,0x1c,0x13,0xe2,0x71,0x14,0x78,0xde,0x79,0x80,0xfe,0x01,0xc5, - 0x65,0xf9,0x1c,0x3b,0x84,0x6d,0x8d,0x1a,0xba,0x4b,0x0b,0xd7,0x2d,0xd6,0x3a,0x93, - 0xc5,0x1a,0xd9,0x92,0x12,0xc5,0x90,0xc1,0x6e,0xd4,0x8d,0x9f,0xb5,0xc9,0x3b,0xbe, - 0xc6,0xf9,0xbc,0x98,0x9c,0xdc,0xfe,0xb7,0xbb,0x93,0xe7,0xe8,0x9f,0x42,0xb6,0x2b, - 0x9c,0xcb,0xcb,0x0c,0xcc,0x50,0x98,0x74,0xf6,0x6c,0x35,0x31,0xa0,0x7c,0xce,0x8a, - 0x46,0x72,0xd6,0x87,0xe4,0x56,0xaf,0x7f,0xb1,0x4d,0xbd,0x3e,0x41,0x63,0x4e,0x6e, - 0xc9,0x6a,0xbd,0xc6,0x28,0x4b,0x1e,0xe7,0xb4,0xa6,0x8a,0x8f,0x58,0xb7,0xdf,0xab, - 0x40,0x0b,0xcc,0x6a,0x54,0x6f,0x0a,0x6a,0xa0,0x57,0x85,0x14,0x55,0x95,0x78,0xd5, - 0xab,0x83,0x3c,0x54,0x3e,0xee,0x45,0x41,0x56,0x29,0x16,0xcb,0x61,0xff,0x0f,0xeb, - 0x9e,0x02,0xb2,0xfc,0x61,0x19,0x22,0x64,0xc3,0x95,0x61,0xd4,0xbd,0x2c,0xb7,0xee, - 0xdb,0x77,0x2b,0x5a,0xcf,0x45,0xdd,0xae,0x80,0x7b,0x3e,0xf0,0xf6,0x5a,0x4b,0xb0, - 0xc6,0xed,0x83,0x8d,0xb5,0xae,0x1f,0x6c,0xac,0x71,0xff,0x80,0x2e,0x4f,0x57,0xdd, - 0x40,0xa8,0xc6,0x82,0x5e,0xf1,0x72,0x75,0xf8,0x89,0x9e,0x30,0x57,0x7c,0x69,0x31, - 0xc0,0x90,0xed,0xed,0x38,0xb7,0x6e,0x52,0x7c,0xb2,0xbe,0xf6,0xfa,0xf0,0xe6,0x66, - 0x64,0xe1,0xa9,0x1c,0x0e,0x0f,0x2b,0x36,0xe1,0xa3,0xe0,0x20,0x4b,0x05,0x78,0xa3, - 0x50,0x89,0xe0,0xba,0x7c,0x2c,0x4f,0x21,0xab,0x6b,0xae,0x48,0x08,0xdf,0xfe,0xe3, - 0x60,0xe1,0x4d,0x50,0x1c,0x8d,0x1c,0x58,0xea,0xec,0xd6,0x5c,0x53,0xc3,0xbb,0xf9, - 0x74,0x8f,0x8f,0x1f,0xe9,0x50,0x1d,0xfd,0xa7,0x53,0xc4,0x33,0xa1,0x78,0x15,0xee, - 0x2f,0x1d,0x2a,0x58,0xd5,0x6f,0x64,0x57,0x9e,0x68,0xa9,0xd5,0xbb,0xfa,0xb9,0xfb, - 0xf0,0x53,0xd7,0x77,0x63,0x74,0xd7,0xcb,0xe8,0xa1,0xbc,0x6e,0x74,0xb6,0x08,0x11, - 0x84,0xd9,0x5b,0x71,0xf2,0xc4,0x60,0x88,0xe3,0xc8,0x6e,0x25,0x81,0xb2,0x33,0xcc, - 0x3f,0x12,0x90,0x66,0x29,0xef,0x5a,0xa1,0xbb,0x89,0xec,0x8b,0x14,0x07,0x8a,0xe4, - 0x94,0x05,0x69,0x7f,0x16,0xca,0x6e,0xce,0x28,0x76,0x27,0x8f,0x53,0x4b,0x9b,0x62, - 0xf3,0x69,0x78,0x7f,0x3f,0x36,0x36,0x37,0x43,0xe0,0x97,0x63,0x59,0xfe,0x28,0x57, - 0x30,0xd6,0x26,0x01,0x46,0xe9,0x64,0x31,0x3f,0xf5,0x08,0x2c,0x3c,0x38,0x9b,0xe3, - 0x37,0x22,0x68,0x41,0x70,0x13,0x0f,0x2f,0xbe,0x98,0x93,0x94,0x17,0x2a,0xe6,0x00, - 0xc8,0x6c,0xd0,0x03,0xb2,0x58,0x8a,0x5d,0xef,0xaa,0x7c,0x0c,0xb7,0xb6,0x3d,0x54, - 0x3d,0xc8,0x95,0x90,0xd5,0x91,0x6b,0xa1,0x8b,0xf0,0x41,0x3e,0x2e,0x04,0x36,0xc5, - 0x2e,0xab,0xe2,0x80,0x4b,0x37,0x27,0xb9,0x43,0x93,0x94,0xfb,0x16,0x52,0x75,0xf4, - 0xac,0xd4,0x48,0x53,0xc9,0x22,0x1c,0xc8,0x4b,0xb5,0x8f,0x3c,0x27,0xcb,0x2f,0x9f, - 0x4e,0xd4,0xa7,0x5d,0x07,0xca,0x48,0xb2,0xb0,0x77,0x59,0x93,0x87,0x8d,0x89,0xfa, - 0x06,0xe9,0xa1,0xfe,0x23,0xfd,0x0f,0xb4,0xa4,0x06,0xdd,0xf3,0x14,0xa3,0x87,0xc1, - 0x64,0xd8,0x96,0x2b,0xdf,0x00,0xe0,0x89,0x38,0x0b,0x15,0x95,0x52,0x17,0x58,0xc5, - 0x1c,0x4e,0x03,0x7a,0x73,0x76,0xd2,0xfc,0xf8,0xe9,0x37,0x6d,0x87,0xef,0x9e,0x4a, - 0x9b,0xb6,0xa9,0x1f,0xf3,0x2f,0x3c,0x8f,0x44,0xfc,0x2b,0xd8,0xbc,0x8d,0x6d,0x1c, - 0x6f,0xd1,0x10,0x8e,0x7a,0x1f,0x5f,0xf8,0xc4,0xd0,0x2d,0x0b,0x37,0xe2,0xc1,0xc8, - 0xee,0x27,0x15,0xe2,0x0e,0x8f,0x02,0x5d,0xa0,0x34,0x0e,0x1a,0x58,0x59,0x48,0x1c, - 0x39,0x8d,0x87,0x13,0x69,0x83,0x28,0x99,0x24,0xcc,0x28,0x14,0x32,0xe7,0x63,0xb6, - 0x84,0x55,0x4f,0x3e,0x44,0x63,0xc3,0x80,0x86,0x28,0x34,0x1c,0x8d,0xec,0x94,0x15, - 0x1c,0x55,0x3e,0x39,0xd4,0x91,0x85,0x85,0xce,0x44,0xcb,0xc1,0xbc,0x11,0x85,0x87, - 0x51,0x68,0xa1,0x2b,0x76,0x53,0xe3,0x63,0xdd,0x68,0xac,0x86,0x11,0xe7,0x73,0x59, - 0xf4,0xa2,0x45,0xe8,0xf1,0xc8,0xd9,0xc9,0x56,0x6d,0x27,0x85,0x55,0x72,0xcb,0xb0, - 0x39,0xff,0x5d,0xa3,0xe7,0xcb,0x11,0x34,0xc9,0x2d,0xb4,0x4e,0x8e,0xd6,0x72,0x3d, - 0x4b,0xe4,0x63,0x73,0xb3,0x51,0xdc,0xee,0xf7,0xf7,0x05,0x12,0x62,0x70,0xcb,0xf9, - 0xad,0xac,0x9b,0x85,0x52,0x87,0x3a,0x3d,0x5c,0x9d,0xdf,0x08,0x39,0x47,0x6a,0xa2, - 0x2c,0x92,0x81,0x23,0x7b,0xc2,0x56,0xd1,0x89,0x1c,0x03,0x34,0x56,0xc0,0x48,0x8d, - 0x66,0x96,0x73,0xc7,0xa6,0x8a,0x9f,0x46,0xec,0xab,0x2b,0x11,0xe1,0x22,0x2f,0x3e, - 0x2b,0x1b,0xb5,0x90,0x9e,0x1f,0x21,0xb5,0xf5,0x0e,0x43,0xec,0x9b,0x0d,0xd9,0x06, - 0xbd,0xc7,0x5e,0x6a,0x41,0xa6,0xaa,0xf5,0x41,0xfc,0xff,0x0c,0xe3,0x16,0x71,0xd5, - 0x8d,0xf4,0x09,0xe9,0x61,0x3a,0x1c,0x7a,0x35,0xbc,0x3c,0x1a,0x4e,0x96,0x0f,0x49, - 0x33,0x80,0x3f,0x61,0xa2,0x06,0xb2,0x8c,0x6e,0x42,0x9a,0x74,0x1b,0x6e,0x77,0x0e, - 0xf1,0x2b,0xf6,0x5c,0x50,0x81,0x5a,0x66,0xbb,0x03,0x44,0x0b,0x2f,0x8c,0xf4,0xb1, - 0x9e,0x38,0xa6,0x9b,0xa7,0xfd,0xf1,0x2b,0xe4,0xa5,0xfe,0x44,0x32,0x5f,0x69,0x9b, - 0xab,0xdd,0x71,0x8e,0x09,0x89,0x6b,0xc5,0x61,0x0d,0x65,0x4f,0x1c,0x7c,0x56,0x86, - 0x5e,0x2c,0xf4,0x97,0xcf,0xe4,0x40,0x2e,0xcc,0x18,0x64,0x38,0x7d,0x1c,0x00,0x39, - 0x7d,0x43,0x51,0x33,0x54,0x1e,0x3d,0xa1,0x30,0x55,0xb9,0xc7,0x2c,0x26,0x65,0x9f, - 0x96,0x94,0xcf,0x3e,0xdb,0xf9,0x67,0x03,0xc9,0x1a,0x88,0x5c,0x4c,0x5d,0xfe,0x90, - 0xe4,0xe5,0x87,0x7b,0x89,0x9a,0x3f,0xdc,0x23,0x86,0xfc,0x70,0x4f,0x3b,0xe8,0x87, - 0xfb,0xe4,0xf6,0x87,0x7b,0x1c,0xe3,0x1f,0x02,0x25,0xc4,0x07,0xae,0xae,0x4c,0x47, - 0xc0,0x88,0xdf,0x04,0x1e,0xfa,0x5d,0x12,0x18,0x1f,0xb2,0xd7,0x35,0x10,0xaa,0x38, - 0x6e,0x01,0x58,0x25,0xc2,0x4f,0x0c,0xa0,0xc5,0x9c,0x5c,0xe8,0x06,0xc5,0xbf,0x2f, - 0x22,0x36,0x97,0x33,0xc5,0x11,0x17,0xcb,0x62,0x9c,0xab,0xd2,0x30,0xeb,0xc3,0x22, - 0x98,0x8f,0x90,0x08,0x58,0xac,0xc8,0x3f,0x67,0xfd,0xac,0xfa,0xbc,0x5f,0xf4,0x49, - 0xe1,0xd8,0xf2,0xf7,0x8a,0x4e,0x3c,0xc7,0xc6,0xeb,0x71,0xc8,0xdd,0x35,0x95,0xff, - 0x69,0xb0,0xf3,0x9c,0x50,0x6b,0x1b,0xca,0x0d,0x25,0xd1,0x71,0x4a,0xe1,0x36,0x37, - 0xcb,0x2a,0x0b,0x3b,0x0c,0x3c,0xda,0xe1,0x78,0x16,0x04,0xf0,0xc7,0xe6,0x0b,0xc2, - 0xf2,0xe5,0x1e,0xee,0xb3,0x63,0x68,0x4d,0x12,0xbb,0x62,0x2d,0xc6,0x88,0x72,0x14, - 0xfc,0x00,0xd0,0xa7,0xf9,0xf9,0x0c,0x23,0x79,0xda,0x18,0xf9,0x44,0x19,0x55,0x6d, - 0x54,0x21,0xf1,0xb2,0x93,0x12,0x4c,0xa8,0x76,0x58,0x5c,0x00,0xd6,0x4a,0x8e,0x20, - 0x3f,0x6b,0x95,0x94,0x3d,0x53,0x68,0x19,0x7c,0xed,0xfc,0xf3,0xe2,0xa8,0xf9,0xbf, - 0xec,0xe6,0xb7,0x2f,0xcb,0xee,0x83,0x8c,0x03,0x97,0xad,0xce,0x3a,0x64,0x45,0x37, - 0x52,0x7b,0xc4,0x0a,0x88,0x91,0x8b,0x22,0x00,0xac,0xdb,0x04,0x6d,0x05,0x7f,0x22, - 0xed,0x12,0xe6,0x52,0x0d,0xc3,0xf3,0x68,0x0d,0xba,0x97,0x83,0x13,0x30,0x0a,0xd7, - 0xca,0xaa,0x1b,0x16,0x92,0xe3,0x48,0xda,0xf1,0x39,0xb2,0x9a,0x39,0xa2,0x48,0x7c, - 0xc3,0x91,0x5a,0x78,0x30,0x2a,0xc6,0x4c,0xcb,0x65,0x0f,0x57,0x07,0x86,0xa2,0x10, - 0x46,0x78,0xf9,0x44,0xe4,0x12,0x15,0xd3,0xcf,0x01,0x52,0x98,0x48,0x91,0x41,0xf0, - 0x22,0x5c,0x2e,0x4c,0xd3,0x92,0x05,0x04,0xb6,0x4b,0x64,0xfe,0x0c,0x91,0x08,0x93, - 0xb4,0xdc,0x18,0x15,0xc3,0xe6,0xe4,0x47,0xc4,0xb3,0x60,0x93,0x98,0xd0,0x23,0x64, - 0x4d,0x25,0x7e,0x49,0x16,0x6f,0xc3,0x1e,0x8f,0x9d,0x30,0x49,0xa3,0x96,0x88,0xc0, - 0x15,0x18,0x5c,0x17,0xa4,0x37,0x8c,0x6f,0x0c,0xdf,0x1c,0x83,0x09,0x0b,0xe4,0xe2, - 0x30,0x51,0xac,0x98,0x34,0x1a,0x93,0xa5,0xbd,0x9b,0x8a,0x10,0xf5,0xa2,0x19,0x62, - 0x9d,0x18,0xc1,0x09,0x03,0x6f,0xc4,0xe3,0xc8,0x71,0xd8,0x0e,0x19,0x6b,0x7f,0xe8, - 0x6c,0x16,0xe4,0x00,0x19,0xcf,0xfe,0xd0,0x29,0x60,0x47,0x16,0xfb,0x84,0x50,0x1f, - 0x20,0xd9,0x6d,0x41,0x5b,0x14,0x1a,0x83,0x5a,0x87,0x02,0x18,0x32,0x25,0x16,0xb1, - 0xf6,0x16,0xa1,0x36,0x87,0x29,0x98,0xf8,0xc4,0x67,0x16,0x07,0x84,0x3a,0xa3,0x4c, - 0xda,0xd6,0xd8,0xb0,0x78,0x5c,0x82,0x66,0x90,0x06,0x91,0xa1,0xf0,0x31,0x59,0xdc, - 0x0f,0x25,0x68,0x07,0x9e,0x53,0x34,0x45,0x40,0xa9,0x54,0x15,0x12,0x31,0x06,0xb2, - 0xa0,0x32,0xf9,0xa8,0x46,0xd5,0x98,0x56,0xa7,0x56,0x89,0x70,0x7e,0x96,0x76,0x4c, - 0xe1,0xa9,0xe8,0xfd,0x00,0xbe,0xf7,0x82,0xf1,0x4f,0x00,0x3d,0x3c,0x4f,0x03,0x00, - 0xe7,0xa7,0x22,0x02,0xbc,0x50,0xf0,0x2a,0x4b,0x57,0x07,0x90,0xc5,0x4d,0x2a,0x85, - 0x48,0x2a,0xf0,0x91,0x5b,0x85,0x8f,0x64,0xf1,0x91,0x6e,0x45,0xbc,0x21,0x61,0xc7, - 0xa3,0xa6,0xb2,0xd7,0xc2,0x6a,0xa7,0xc7,0xe5,0x8a,0xd7,0xbd,0x84,0x3e,0x78,0x4b, - 0x41,0x87,0x28,0x5a,0x9d,0x68,0x3e,0x75,0xbd,0xc3,0xfb,0x4e,0xc5,0xc0,0x75,0x69, - 0x44,0x94,0x3a,0x3c,0x15,0xb1,0x75,0xb6,0x84,0xbc,0xad,0x3c,0x8b,0xb7,0xb1,0xad, - 0x6f,0xfd,0xf7,0x46,0xd8,0x51,0xa0,0x5f,0x0e,0xaf,0x93,0x22,0x10,0x2b,0x08,0xdc, - 0x5e,0x45,0xd4,0x17,0x2d,0x0e,0xd0,0x64,0xba,0x32,0xf4,0x0b,0xbf,0xe1,0x98,0x7a, - 0xf0,0x80,0x50,0x78,0x2c,0x7d,0x2d,0x57,0xd0,0x99,0x5c,0x64,0xa2,0x46,0xbe,0xa2, - 0x0c,0xf1,0x13,0xcf,0xd0,0xab,0x4b,0x93,0xea,0x8c,0x68,0x86,0x60,0x95,0x0b,0xaa, - 0xa3,0x81,0x24,0x2d,0xa3,0xed,0x24,0xc1,0x25,0xf9,0x13,0x20,0x70,0x95,0x55,0x88, - 0xab,0x16,0x01,0xd6,0x20,0xf7,0x16,0xaf,0x46,0xe1,0x5b,0x57,0xab,0x48,0xba,0xa5, - 0xa5,0xb1,0x7f,0x2a,0xfa,0xcf,0xa8,0x0e,0x75,0x3d,0x71,0x27,0xa4,0x49,0x03,0x2e, - 0x81,0x20,0x0f,0x0c,0x01,0x8d,0xba,0x69,0xbc,0x1f,0x19,0x97,0x28,0x17,0x12,0xa8, - 0x7a,0x9c,0xd0,0x2b,0xe2,0xcc,0x67,0xe0,0x2d,0x7c,0x06,0x4b,0x21,0x81,0x70,0xd9, - 0xb7,0x30,0xa4,0xd1,0x8d,0x03,0xea,0xf8,0x16,0x56,0x9f,0xba,0x44,0x94,0xe2,0x8a, - 0xb5,0x7e,0x34,0xc2,0x0f,0xdd,0xf6,0xaa,0x5a,0xe1,0x3c,0x11,0x79,0x28,0x3e,0x00, - 0x96,0xaf,0x20,0x37,0x13,0x59,0x82,0x38,0xf3,0xab,0xeb,0x7f,0x9d,0xc7,0x87,0xf2, - 0x72,0x59,0xa3,0xcd,0x37,0x88,0xc7,0x8e,0xeb,0x35,0xf2,0x65,0xf8,0x02,0xb3,0xd1, - 0xef,0xb6,0xd4,0x8b,0x4c,0x22,0x0a,0x97,0x94,0xa7,0x04,0x41,0xc7,0x97,0xc3,0x68, - 0xd9,0x88,0x14,0x11,0xbc,0x61,0xad,0x0e,0x75,0x23,0xb5,0x40,0x2b,0xb1,0x42,0xb9, - 0x13,0xdd,0x5c,0x3e,0x54,0x84,0xb4,0xa8,0xdc,0xbc,0xb9,0xa0,0x4e,0xea,0x5e,0xbd, - 0x41,0x4a,0x87,0x26,0x26,0x00,0x77,0x46,0xc5,0xf1,0xf9,0x1f,0xe4,0x31,0x68,0x26, - 0x00,0x52,0x67,0xca,0xa7,0x2a,0xab,0x02,0x5e,0xac,0x0c,0x59,0x21,0x26,0xc5,0x4e, - 0xaf,0x1c,0x38,0x53,0x14,0x2d,0x1a,0xb3,0x94,0x61,0xcf,0xe3,0x4b,0x33,0x1d,0x8b, - 0x99,0xb8,0x89,0xe7,0x98,0xb0,0x5d,0x05,0x23,0x12,0x04,0x91,0x61,0xd0,0xa4,0xdc, - 0x02,0x59,0xa4,0x34,0x10,0x6f,0x4e,0x25,0x36,0x30,0x93,0x57,0x6a,0x41,0x0f,0x85, - 0x3a,0x14,0x1c,0x98,0x34,0x11,0xe0,0xba,0x37,0x43,0xa5,0x2c,0x06,0x2a,0x86,0xee, - 0x3d,0xd7,0xbf,0xca,0x27,0xe3,0xfd,0x82,0x2b,0xa1,0x72,0x22,0xd9,0xc4,0xda,0x8b, - 0x08,0x28,0xc5,0x2c,0x49,0xc2,0xfe,0xce,0x0e,0xe8,0x19,0xe1,0xb6,0xbe,0xa3,0x0f, - 0xb8,0x72,0xae,0x3b,0xb4,0x19,0x8a,0xe4,0x59,0xe4,0x4c,0xc5,0x77,0x14,0xdc,0xd4, - 0x5e,0x9f,0x12,0xe7,0xbe,0x15,0x6d,0xe9,0x7a,0xae,0x29,0xfd,0xb9,0x5e,0x6a,0x4a, - 0xb9,0x1c,0xf4,0xa0,0xc2,0x61,0x95,0xb1,0x92,0x2f,0x85,0x08,0xa0,0xdf,0xdf,0x77, - 0x5b,0x03,0xa5,0x22,0xdd,0x6d,0x2d,0xbe,0xb3,0x37,0x10,0xcf,0xa1,0xa9,0x81,0x14, - 0x54,0xcc,0xf4,0x9b,0xcd,0x47,0xdb,0x38,0x68,0x1d,0xfa,0x7d,0x71,0xc0,0xe4,0xbf, - 0x1a,0xee,0xc2,0xbe,0x93,0x98,0x00,0x2d,0x4c,0x1d,0xc4,0xbe,0x2c,0x36,0xc2,0x02, - 0x94,0x9d,0xe5,0x18,0x38,0xbb,0x83,0x51,0xef,0x9b,0xe4,0x86,0x5b,0x69,0xcd,0x25, - 0x06,0x17,0x5c,0x15,0x03,0x34,0x24,0xc6,0x00,0x03,0x21,0x63,0x29,0x8b,0x23,0x59, - 0x36,0x8c,0x87,0xfa,0x8b,0xb7,0x3c,0xa6,0x56,0x45,0x2b,0x1b,0x15,0xf3,0x52,0xf4, - 0x2b,0x39,0x85,0xc3,0xad,0x57,0xb6,0xc6,0xab,0xb4,0xa3,0x1f,0x9c,0x52,0x8f,0xaf, - 0x76,0xec,0x83,0xad,0xbe,0xfe,0x5f,0xc1,0x42,0x1b,0xdb,0xe2,0xbe,0x17,0x53,0x01, - 0xdc,0xa0,0xe2,0x2e,0xb0,0x49,0xa4,0x44,0x8a,0x1a,0xc7,0xef,0xdf,0xe1,0x8b,0x82, - 0xc3,0x4e,0x6f,0x90,0x7e,0xff,0xe3,0xcd,0xe9,0x4f,0xe8,0x5a,0x79,0xa1,0xf3,0x33, - 0x14,0x6f,0x81,0xa8,0xdc,0xe0,0x6b,0x46,0x78,0xb9,0x18,0x26,0x41,0x0f,0xeb,0xe9, - 0x74,0xfb,0x0c,0x72,0x7f,0xc2,0xbf,0xc4,0x7c,0x80,0x2d,0x4d,0xa8,0x9c,0xeb,0x4f, - 0x03,0x2e,0x34,0xc6,0x6b,0x3a,0x68,0x21,0x01,0x4c,0x20,0xf2,0x2f,0x24,0x23,0x4a, - 0xd7,0x1a,0x9f,0xcf,0x8f,0x0d,0x2e,0x48,0x11,0x09,0xe8,0xad,0x0b,0x21,0x9c,0x52, - 0x81,0x25,0xf9,0xde,0x37,0x05,0xe6,0x3c,0x70,0x51,0x56,0x17,0xd4,0x46,0xb3,0xfb, - 0xce,0x42,0x97,0xe0,0x82,0x73,0xc0,0x7a,0x8c,0x03,0xa1,0xff,0xe2,0xd8,0x21,0x8d, - 0xf0,0xe4,0xec,0xf4,0xe8,0x83,0x46,0xb1,0x26,0x30,0x90,0x83,0x87,0x7e,0xbb,0x71, - 0xa2,0xd1,0x65,0x22,0xae,0x93,0x3e,0xdf,0x04,0xd5,0x3e,0x92,0xfa,0x36,0x73,0x70, - 0x7e,0xf8,0xac,0x3d,0x3a,0x98,0x98,0xac,0xc9,0x61,0x4c,0x00,0x16,0x4e,0x2e,0x9d, - 0x7c,0x45,0xb1,0xd7,0x70,0x2e,0xaf,0x23,0x90,0x3b,0x50,0x0a,0x11,0x79,0xc0,0x9f, - 0x96,0x7b,0xbd,0xe6,0xcc,0xb9,0xc5,0x6b,0x17,0x51,0x13,0x84,0x2a,0x31,0x25,0xd0, - 0x02,0xc6,0x50,0x09,0x6f,0xc3,0x64,0xdd,0x1f,0xc5,0x57,0x59,0x4d,0x7a,0x83,0x8a, - 0xc3,0xec,0xb1,0x20,0x3b,0x8f,0x1d,0xef,0x1a,0x34,0xf4,0x7c,0x7d,0xf8,0x83,0xef, - 0x13,0x99,0x20,0xad,0x52,0x7c,0x0e,0xa5,0x6b,0xce,0xd2,0x1a,0x64,0x2e,0x13,0x91, - 0xfb,0xe4,0x53,0x55,0x64,0xb4,0x16,0x2b,0x01,0x5b,0x2e,0x74,0xa2,0xb9,0x5c,0x0c, - 0x9b,0xa8,0xfe,0x56,0xac,0x1d,0x1d,0xbf,0xd7,0x30,0xc3,0x8d,0x11,0x07,0xe2,0xf2, - 0x54,0xb4,0xa5,0xeb,0x27,0xfb,0x62,0x46,0xf6,0x04,0x1f,0xaf,0xa4,0x36,0x10,0x4a, - 0x68,0x74,0xc7,0x04,0xe4,0x44,0x5a,0x83,0x42,0x3d,0x38,0xb2,0x43,0xce,0xb1,0xbe, - 0x39,0x51,0x30,0x0b,0xc2,0x8a,0x2a,0x19,0x0c,0x88,0xc5,0x08,0xc1,0xc1,0xb1,0x13, - 0x81,0x3a,0xce,0x3c,0x64,0x0d,0x1c,0x5f,0x33,0x01,0xfe,0x23,0xd4,0x71,0x3b,0xb2, - 0xe7,0x59,0xe8,0xb8,0x98,0xb5,0x37,0x3a,0x10,0x35,0x47,0x37,0x26,0x46,0x1f,0x8b, - 0x1e,0x24,0x96,0x3a,0x14,0xbc,0x8c,0x43,0xfc,0x9c,0x92,0x1a,0x8f,0x00,0xca,0x3d, - 0xf7,0x85,0x6d,0xd2,0x7e,0x84,0x4d,0x20,0x20,0x45,0x81,0x4e,0xc6,0x48,0x28,0x10, - 0xe0,0x91,0x93,0xe6,0xa3,0x69,0x78,0x7c,0x6d,0x92,0xfa,0x61,0x6a,0x22,0xb2,0x86, - 0xa1,0xd6,0xe2,0xa6,0xb1,0xbb,0x13,0x27,0x12,0x5f,0x4d,0x34,0xaf,0x57,0xf6,0x21, - 0x63,0x12,0x9d,0xe6,0x46,0xa1,0x35,0x10,0x0d,0x4d,0x8c,0x05,0x62,0x6a,0x1c,0xfd, - 0xa1,0x54,0xa9,0x39,0x71,0x6d,0x10,0x61,0xf4,0x37,0xb7,0x09,0xf9,0x44,0x8b,0x89, - 0x60,0xaa,0x0f,0x52,0x80,0x3b,0x16,0xfd,0x78,0xc1,0x25,0x5f,0x7e,0x44,0xf8,0xe3, - 0x5f,0x39,0x79,0xc8,0xb8,0x14,0x51,0xcb,0x11,0x24,0x53,0x8c,0xcb,0x42,0x77,0xb2, - 0xd5,0x7a,0xbc,0x6c,0x28,0x66,0xe7,0x6b,0x65,0x65,0x9c,0x08,0xf4,0x7f,0xdc,0x13, - 0x7c,0x4e,0x49,0x0a,0x2a,0x45,0x4c,0x53,0x6a,0xc8,0x29,0x3b,0x7e,0x8c,0x72,0xbb, - 0x4b,0xcf,0xdd,0x20,0x37,0xd1,0xec,0x24,0x41,0xca,0x3c,0xd1,0x38,0x2f,0x5f,0x10, - 0x05,0x3d,0x5a,0x36,0x7b,0x42,0xbb,0x4d,0x24,0x03,0x36,0x4e,0x9c,0xdb,0x87,0x5c, - 0xd1,0x98,0x8b,0xfe,0x86,0x9e,0xfc,0x15,0x65,0xb5,0x25,0x3f,0x22,0xcd,0x75,0x2e, - 0xc3,0x58,0x23,0x3a,0x73,0x82,0x26,0x69,0x6d,0xc1,0xcf,0x34,0xff,0x7c,0x72,0xa6, - 0x64,0x4f,0xa7,0x69,0x3e,0xbd,0xd6,0x5c,0x2a,0x81,0x07,0x8f,0x25,0xb2,0x86,0x08, - 0x25,0x99,0x05,0x50,0xa3,0x60,0x5e,0x51,0xcf,0x49,0x28,0xa4,0x0c,0xe0,0x55,0xc8, - 0x8a,0xab,0xf4,0xba,0x83,0x62,0xb0,0x0a,0xb7,0x40,0x64,0x31,0x7a,0x97,0x9d,0xec, - 0x78,0x92,0xde,0x61,0xbd,0x74,0x9b,0xf9,0x04,0x6d,0x3e,0xb0,0x72,0xfd,0xb1,0xb7, - 0x98,0x50,0x0f,0x1a,0xc8,0x7e,0x2e,0xf5,0xeb,0xca,0x0d,0x16,0x97,0x6a,0x93,0x82, - 0x81,0x14,0x88,0x3e,0xdd,0x98,0xd7,0xcb,0x73,0xaf,0xf3,0x4d,0x94,0xea,0x85,0xc0, - 0x8e,0xe2,0x52,0x3d,0xb1,0xce,0xb9,0xa1,0x92,0x95,0x9f,0xb7,0xa4,0x4a,0xc8,0x29, - 0xb9,0x29,0xb6,0x2a,0xda,0x03,0x4a,0xa5,0x79,0x45,0xde,0xf8,0x68,0x34,0xe1,0xe2, - 0x62,0x67,0x57,0x94,0xa4,0xc5,0x79,0xcd,0x06,0x96,0x8a,0xb2,0x88,0x37,0xf9,0x20, - 0xb1,0xca,0x48,0xca,0x11,0x42,0xb3,0xe1,0xc4,0xc5,0x8a,0x29,0xad,0x14,0x45,0x97, - 0xc7,0x9d,0x7e,0xbb,0xdd,0xef,0x74,0xfa,0xdd,0x6e,0xbf,0xd7,0xeb,0xef,0xee,0xde, - 0x47,0xb0,0xe6,0xc1,0x5c,0xfc,0x61,0xd3,0x0a,0x72,0xf8,0x7b,0x61,0x0b,0x14,0x28, - 0x27,0xad,0xbe,0x9a,0x38,0x94,0xba,0x74,0x84,0x7e,0xaa,0x1e,0x5e,0x68,0x4b,0xd0, - 0x96,0x9a,0xf2,0x4b,0xd2,0x5b,0x0f,0x17,0x00,0x2d,0x00,0x29,0x01,0xa5,0x2f,0x8d, - 0x33,0x02,0xbf,0xc8,0x28,0xd3,0x83,0x2c,0xac,0x1d,0x24,0x36,0x47,0xd7,0xa6,0x7e, - 0xd1,0x8c,0x81,0x46,0x23,0x52,0xcb,0x00,0x68,0xc4,0x1d,0xd8,0xcb,0x91,0xd0,0x69, - 0x0a,0x52,0xde,0xcc,0xc8,0x6a,0xf2,0x39,0x3a,0xa1,0xdb,0x8d,0x4f,0xf1,0xe4,0x10, - 0xc1,0xa9,0x94,0x8c,0x10,0x2b,0x5b,0x49,0xed,0x1e,0xa4,0x75,0x48,0x62,0x15,0x91, - 0xa6,0x26,0x9f,0x2d,0x10,0xf4,0x87,0xe5,0x16,0x3a,0x69,0x97,0xc3,0x7f,0x7f,0xf4, - 0xb1,0xb2,0x8e,0x66,0x87,0x75,0xd5,0x28,0xa8,0xed,0x8d,0x34,0x31,0x1d,0x9d,0xc8, - 0xfa,0x40,0xaa,0xf2,0x5d,0xa2,0x89,0x20,0xab,0x2a,0x25,0x0d,0x56,0x8e,0x90,0x25, - 0x88,0xc6,0x85,0x01,0x49,0xb0,0x8d,0xab,0xda,0x12,0x26,0x9b,0x83,0x23,0xc2,0xc4, - 0x74,0xe7,0x2b,0x48,0xaa,0x92,0x8e,0x54,0x2f,0xc6,0x44,0x1e,0xe0,0x6c,0x91,0x20, - 0x41,0xa9,0x2c,0xa2,0x35,0x62,0x1b,0xa4,0x25,0x3b,0xd6,0x64,0x4b,0x62,0x31,0x24, - 0x91,0x7d,0x83,0x7f,0x0b,0xe4,0x5a,0x6b,0x36,0x33,0xc5,0x9c,0x2c,0x74,0x22,0x66, - 0xaf,0xfe,0x65,0xe3,0x4b,0x26,0xfb,0xfd,0xfa,0xe6,0xbf,0x58,0xf4,0x13,0xcf,0x9a, - 0x29,0xa7,0x95,0x2d,0x26,0xe6,0x76,0x92,0xee,0x70,0xdc,0xd3,0x6e,0xb2,0x98,0x64, - 0x99,0xb4,0x3b,0x65,0x66,0xe0,0x5f,0xe6,0x72,0xf9,0x32,0x86,0x45,0x67,0x44,0xfa, - 0xb9,0x54,0x4e,0x41,0xb4,0x10,0xb7,0x34,0x28,0xa3,0xcd,0x45,0xa3,0x6b,0x51,0xee, - 0x94,0x6f,0xc4,0xa1,0x3c,0x20,0x47,0x5c,0x21,0x45,0x99,0x1d,0x5e,0xb0,0xc0,0x4b, - 0x07,0xcd,0xbf,0xb9,0xb9,0x3c,0xff,0x24,0xc9,0xc0,0x21,0x0e,0x5a,0x14,0x07,0xc4, - 0x48,0x31,0x15,0x05,0x5f,0x3c,0xd9,0x75,0xfc,0x31,0xc5,0x0e,0xff,0xf0,0xcb,0x37, - 0x99,0x9d,0xdc,0xe2,0x04,0xc4,0x59,0x25,0xe6,0xe1,0x31,0xa5,0xc8,0xb3,0x71,0x59, - 0x65,0x88,0xad,0xa9,0x8d,0x81,0xbc,0x65,0xd6,0x64,0x91,0xdc,0x8d,0xef,0xc6,0x34, - 0xc4,0xd7,0xf0,0x5b,0xa3,0x0f,0x14,0xaa,0x50,0xb6,0xd4,0x1a,0x37,0xc8,0x96,0x62, - 0x29,0x2e,0x88,0xca,0x86,0xac,0x3d,0xb6,0x27,0x82,0x1d,0xc2,0x06,0x1a,0x51,0xf0, - 0x0c,0xd0,0xb6,0x6d,0x3f,0x9e,0xa3,0x17,0x4a,0xcb,0xd4,0x03,0xff,0x3e,0xc5,0x1f, - 0x76,0xdf,0x8a,0x6e,0xc9,0xd9,0x03,0xd0,0xfb,0xf7,0x76,0x67,0xef,0x56,0x3b,0xfd, - 0x5d,0x03,0x74,0x8d,0xd1,0xa2,0xc5,0x19,0x95,0xb5,0xa6,0xce,0x3c,0xab,0xf9,0x36, - 0xc2,0xb0,0x4d,0x48,0x4f,0x80,0xfe,0x2d,0x3c,0x8c,0x1a,0x26,0xeb,0xe6,0x3a,0x0a, - 0x49,0x72,0xfa,0x5d,0xc3,0x39,0x36,0xc5,0xbc,0x54,0x8a,0x4b,0x5d,0x4d,0xa7,0xf7, - 0x1e,0x90,0x3e,0x4f,0x6b,0x37,0xdb,0x2d,0xe5,0x27,0xee,0x15,0x7b,0x8e,0x54,0xba, - 0xbd,0x77,0xdf,0xed,0xdc,0x47,0xb7,0x5f,0x17,0xc0,0x02,0x3d,0xc7,0x09,0xe1,0x87, - 0x3a,0xb6,0x1b,0xd4,0xa6,0x26,0xc1,0x65,0x61,0xc7,0xb1,0x50,0xe3,0x4e,0xb5,0x18, - 0xf0,0xdd,0x17,0x44,0x00,0xf1,0x4f,0x5b,0xb6,0x9a,0xed,0x4e,0x0b,0xc3,0xb9,0xa5, - 0x8b,0x0b,0x8c,0x13,0xb4,0x3a,0xf4,0x1a,0x82,0x56,0x48,0xf3,0x9a,0x3a,0x11,0x3e, - 0x01,0xa6,0x71,0x6a,0xe0,0x4d,0xd2,0xc5,0xbc,0x1c,0x5b,0x74,0xaa,0x03,0x1a,0x18, - 0x6b,0x68,0xb8,0xb8,0x3f,0x1f,0x6b,0x7c,0xd4,0x23,0x13,0xd9,0x86,0x4d,0x3a,0x4a, - 0x0a,0x97,0xdb,0x89,0xe3,0xd9,0x77,0x02,0x28,0xf8,0x53,0x1b,0xd1,0xe6,0x94,0x18, - 0x24,0xb3,0xcf,0x65,0x36,0x2f,0x37,0x0e,0xb8,0x93,0x0e,0x95,0x83,0x9b,0x59,0xf5, - 0xa5,0x91,0x4c,0x73,0x21,0x21,0x47,0xc5,0xf9,0x06,0x84,0x9c,0x0c,0xeb,0x18,0x44, - 0x37,0xa8,0xc7,0xe0,0xcd,0x4d,0x44,0x9b,0xe9,0x14,0xdf,0x00,0x2c,0xac,0xff,0x1c, - 0x38,0x91,0x6b,0x41,0x3b,0x31,0x4b,0x8c,0x91,0x0d,0x52,0xff,0xaf,0xa4,0x7a,0x80, - 0xa0,0x94,0x41,0xc5,0xf3,0x82,0x1b,0x80,0x8b,0x3d,0xb1,0x02,0xdf,0xc3,0x61,0x1d, - 0x61,0x0a,0x1a,0xc6,0x27,0x4d,0x4c,0xd1,0x50,0x07,0x4a,0xf8,0x3c,0x22,0x8e,0x4b, - 0xdd,0x08,0x81,0x5f,0x01,0xe9,0x7b,0x7c,0x42,0x48,0x4a,0x11,0x2a,0x54,0x61,0xdd, - 0x16,0xb8,0x27,0x1a,0x2d,0x6d,0xa8,0x11,0xa1,0x93,0x3b,0x14,0x55,0x08,0xab,0xdc, - 0x12,0x07,0x9b,0xab,0x68,0x69,0x46,0x0a,0x44,0x4d,0x3b,0x73,0x1b,0x77,0x34,0x46, - 0xf2,0xa3,0x6f,0x28,0x1c,0x12,0x20,0xf7,0x7a,0x0f,0xa5,0x82,0x56,0xaa,0xda,0x50, - 0xe4,0x3f,0xee,0x69,0x65,0x85,0x85,0x4f,0xba,0xd7,0x44,0x54,0xa1,0xb2,0xf4,0xe2, - 0xa1,0x48,0xe7,0x4e,0x8b,0xf5,0x21,0x2d,0xb4,0x26,0x40,0xa6,0xc6,0x89,0xd4,0x25, - 0x45,0x39,0xdb,0x43,0x48,0xdf,0xe1,0xbb,0x5f,0xd1,0x1d,0xf3,0x97,0x8c,0x96,0xce, - 0x6c,0xc4,0x6b,0xb1,0xdb,0x00,0x7c,0xee,0xdc,0xf6,0xee,0x51,0x76,0x89,0x80,0x47, - 0xdf,0xc7,0x49,0xe4,0x8e,0x13,0x29,0x6c,0x80,0xf4,0x82,0xc5,0x2d,0x12,0x6d,0xf0, - 0x5d,0x4a,0x10,0x77,0x30,0x81,0x64,0x1d,0x18,0xce,0x7d,0xfb,0x3e,0x43,0x25,0x3a, - 0x58,0xb6,0x48,0xb5,0x37,0xc5,0xf1,0x3b,0x7e,0x68,0x68,0x73,0xd1,0x1a,0xf7,0x40, - 0x92,0xc6,0xc1,0x1c,0xc9,0x17,0xf2,0x7b,0x8e,0x97,0x21,0x6a,0x5e,0x2e,0x1c,0xc5, - 0x7b,0x03,0x6a,0xff,0x8c,0x09,0x8a,0x33,0x86,0x40,0xab,0xc9,0xd8,0x22,0x0c,0x44, - 0xdf,0x6f,0xb4,0x3b,0x88,0x40,0x8e,0xda,0xd1,0xeb,0x63,0x4d,0xcd,0xe0,0xe2,0x99, - 0x21,0xd8,0xcc,0x39,0x3d,0xe5,0xb8,0x55,0xea,0x35,0x64,0x16,0xdd,0x91,0xd4,0x7c, - 0x21,0x34,0x3a,0x69,0x29,0x29,0x86,0x3a,0x2c,0xf5,0x21,0x38,0x51,0xa2,0x46,0x78, - 0xde,0x23,0xae,0x28,0x03,0x10,0xa6,0xa3,0xdc,0x89,0x01,0xc8,0xc6,0xa6,0xf6,0xee, - 0xc4,0xcc,0xcc,0x04,0x0b,0x11,0xb5,0x92,0xd9,0x91,0xea,0xd3,0x61,0xe6,0x7d,0x41, - 0x10,0x55,0x89,0x1d,0xc6,0xa8,0xee,0x08,0x03,0x67,0x4a,0x55,0xb2,0x33,0x57,0x53, - 0x2f,0x1d,0x9d,0x2e,0x62,0xa8,0x01,0xd5,0xe9,0xa1,0x43,0x0d,0x57,0x37,0x5f,0x2f, - 0x1d,0x2a,0x6a,0x9c,0xe8,0x1a,0xa1,0x3e,0xa5,0x22,0x33,0xdb,0xf9,0xf2,0x54,0x9c, - 0x87,0xb3,0x43,0xe1,0x11,0x33,0xf5,0x54,0x2d,0x2a,0xde,0xa3,0x44,0x4a,0x70,0x6d, - 0xbb,0x1e,0x09,0xdc,0xfc,0x86,0xb6,0x96,0x66,0x29,0xc5,0x59,0xec,0xc2,0xc3,0x76, - 0x5e,0xbd,0x19,0x1d,0x4d,0x10,0x25,0xa7,0xe3,0x5f,0x21,0xd5,0x01,0x52,0x2f,0x48, - 0x78,0xcf,0xf7,0x95,0x69,0xce,0x3c,0x30,0xa9,0x41,0x2a,0xc0,0x2a,0x90,0x35,0xac, - 0x16,0xd9,0x37,0x44,0xa8,0xe2,0x40,0xc2,0x57,0x9b,0x2e,0x3c,0x8f,0xde,0xf1,0x9e, - 0xa2,0x3c,0x50,0x57,0xef,0xb6,0xd4,0x93,0xb4,0x09,0xa1,0xc5,0x85,0xe5,0x73,0x37, - 0xaa,0xae,0x9c,0x54,0x55,0xce,0xcc,0xf2,0x48,0x54,0xe3,0x74,0xb3,0x42,0x6d,0x41, - 0x5a,0x94,0xb5,0xce,0x28,0xdb,0x19,0xbf,0x31,0x2e,0x07,0x9f,0xd2,0xb6,0x65,0xbb, - 0xb9,0x97,0x67,0x70,0x54,0x53,0xb5,0x24,0xc9,0x11,0x28,0x46,0x9f,0x05,0x8c,0x9c, - 0x96,0xa9,0xc1,0x36,0x31,0xb2,0xe6,0xc5,0x46,0xf5,0x34,0xd2,0xb6,0xd4,0xf1,0x7c, - 0x4c,0x1b,0xaa,0x18,0x52,0xa7,0xd9,0xed,0xee,0x31,0xcd,0xcd,0x0f,0x8b,0x7d,0x87, - 0x24,0x01,0xc9,0x04,0xbf,0x2a,0x99,0x4e,0xa9,0x26,0x1c,0x7d,0x54,0xb7,0x1f,0xa9, - 0x6d,0xe5,0x67,0x9d,0xa0,0x26,0xf0,0xf1,0xfc,0x44,0xc4,0x42,0xc4,0x98,0x91,0xbe, - 0xc3,0x81,0x0e,0x62,0x50,0x06,0x8c,0x62,0x69,0x4b,0xd8,0x47,0x28,0xd0,0x2a,0xd5, - 0xc3,0xd7,0x07,0xf8,0xdc,0x55,0xa2,0x1d,0x6e,0xdd,0x6f,0xac,0x50,0x9f,0x7c,0x3a, - 0x7b,0xf7,0xbb,0x26,0x13,0xb4,0x98,0xee,0xb0,0xa5,0x4c,0x5d,0x24,0x5b,0x00,0x3d, - 0xf4,0x1d,0x32,0xf5,0xcf,0xe7,0xc7,0x1a,0x7f,0x64,0x2c,0x68,0x09,0x02,0x09,0x72, - 0xd4,0xff,0xaf,0xb7,0x6b,0x7f,0x6e,0xdb,0x48,0xd2,0xbf,0xeb,0xaf,0xa0,0xb1,0x39, - 0x1f,0x11,0x42,0x14,0x69,0x47,0xd9,0x0d,0x29,0x88,0xe5,0x64,0x9d,0x5d,0x57,0x6c, - 0xc7,0x65,0x7b,0x73,0x75,0x25,0x29,0x29,0x4a,0x84,0x24,0x94,0x48,0x90,0x26,0xa0, - 0xd7,0x49,0xfa,0xdf,0xaf,0xbf,0xee,0x9e,0x17,0x00,0x4a,0xae,0xdc,0x43,0x65,0x59, - 0xe4,0x60,0x5e,0x98,0x47,0x4f,0x77,0x4f,0xf7,0xd7,0x43,0x47,0xea,0xcb,0x62,0xc1, - 0x02,0xcc,0xfb,0x77,0x1f,0xa0,0x50,0x04,0x2f,0xa8,0x57,0x2c,0x9e,0x6d,0x61,0x7d, - 0x66,0x50,0xa8,0x0f,0x5f,0xf7,0xcb,0x02,0x5c,0xbc,0x16,0xb7,0x09,0xb5,0xbe,0xb1, - 0x18,0xc8,0x1b,0x00,0xc7,0x95,0x35,0x7d,0xac,0x9f,0xcc,0x78,0xda,0x5f,0x95,0x17, - 0xf5,0x9c,0xd8,0xc6,0xdb,0x7a,0xef,0xc8,0x7c,0xb9,0x57,0x2b,0x9f,0x21,0x15,0x8f, - 0x62,0x58,0xc6,0xa6,0xfb,0x99,0xad,0xf6,0x56,0xf2,0x2a,0x01,0x33,0x71,0xc0,0xfd, - 0x9c,0xde,0x5a,0x7b,0x87,0x73,0xec,0x72,0x61,0xd9,0x81,0x63,0x22,0xf5,0xb0,0x40, - 0xe0,0x8c,0x65,0x58,0x4c,0x71,0xbb,0x45,0x06,0xe6,0xe7,0x18,0x6d,0xb1,0xd4,0x6b, - 0x7d,0x5d,0x45,0xf8,0x7e,0x65,0x04,0x65,0x39,0x02,0xd6,0x4b,0xda,0x1d,0x8b,0x26, - 0x51,0x38,0x5e,0xe7,0xb3,0xb3,0xac,0x9f,0xb1,0x06,0x62,0x26,0xd1,0x99,0x73,0xb8, - 0xfa,0x09,0x11,0x92,0xc7,0x9b,0x4a,0x95,0xb4,0x02,0x4e,0xe4,0xa8,0x35,0xb4,0x20, - 0xd3,0x22,0x7c,0x9a,0xe7,0x4a,0x85,0xd6,0x37,0xf7,0xd5,0x4d,0x50,0xf2,0x78,0x7a, - 0xc9,0xca,0x76,0xc9,0x5b,0x4a,0x9b,0x48,0xec,0xac,0x59,0xf6,0x1e,0xf8,0x99,0x0d, - 0xb7,0x68,0x73,0xd3,0x50,0x68,0x5a,0x90,0xcf,0x59,0xc0,0x6a,0x4e,0xb7,0x2e,0xfc, - 0x6c,0xc4,0xab,0x2c,0x98,0x89,0x34,0x37,0xce,0xda,0xe3,0x6b,0x5a,0x98,0x1d,0xf3, - 0x90,0x7a,0x8d,0x10,0xf6,0xc4,0xce,0xdc,0x83,0xd4,0x06,0x6f,0x9d,0x9d,0xac,0x79, - 0x3b,0x98,0xfe,0xc8,0x3a,0x32,0xc9,0x83,0x40,0x00,0xfd,0xf4,0xf6,0xd7,0xcf,0x2c, - 0x80,0xaa,0x01,0x5e,0x62,0x3f,0x0c,0x55,0xf9,0xa2,0xc1,0xb1,0x25,0x4c,0xaf,0x39, - 0x66,0x10,0xb5,0x99,0x0f,0x7e,0x95,0xb0,0x79,0xb1,0x9b,0x23,0x08,0x77,0xcc,0x20, - 0x93,0xbb,0xbb,0x2f,0x77,0x55,0x5f,0xe2,0xc5,0xf2,0xb6,0x1f,0x03,0x15,0x8c,0x1f, - 0xb2,0x5b,0x76,0xb7,0x86,0x06,0xe7,0xbf,0xd8,0xa0,0xb2,0x31,0x3b,0xc7,0xb4,0xd5, - 0x88,0xf1,0x31,0x07,0x9d,0xb9,0xcf,0xd0,0x20,0xdb,0xda,0xcb,0x2a,0x08,0xb2,0x9d, - 0x74,0xb2,0xfe,0x59,0x5f,0x43,0x6b,0xef,0x98,0xd0,0xda,0x3b,0x12,0x5a,0x5b,0x97, - 0xa6,0x8b,0x96,0xed,0x07,0xcf,0x86,0x14,0x2f,0x4b,0xaf,0xec,0xbc,0x9e,0xbd,0xd8, - 0xdd,0x1d,0xfe,0xc0,0xe1,0xb2,0x13,0x0d,0xa4,0x2d,0x84,0x4e,0xaa,0x30,0x7b,0x2a, - 0xd2,0xa5,0x89,0xda,0x79,0x2f,0x28,0xbd,0x1e,0x01,0xb6,0x3a,0x61,0x55,0x61,0xd2, - 0x61,0x75,0xcf,0x4f,0x9f,0x7e,0x23,0x72,0xc5,0x7c,0x48,0xb9,0x43,0x82,0xd3,0x6e, - 0xa8,0x1b,0xf8,0xfc,0x9f,0x1f,0x5e,0x7f,0x4a,0x23,0x48,0xcc,0xf4,0xae,0xab,0x65, - 0x51,0x66,0x49,0x75,0x53,0xfd,0x81,0x4b,0x56,0x6a,0x22,0x91,0xd3,0x2b,0x39,0x5b, - 0xaf,0xfe,0xa0,0x64,0xfe,0x0b,0xcb,0xfd,0x64,0x4a,0x4d,0xfc,0x81,0x52,0xe0,0x49, - 0x12,0x92,0x2a,0x4e,0xb2,0x44,0xf8,0x39,0xa2,0x70,0xf0,0x4b,0xac,0x48,0x56,0x4f, - 0x68,0xd5,0xfc,0xa1,0xa1,0x97,0x03,0x9f,0x73,0x01,0xaa,0xc9,0xd3,0x3b,0x28,0x90, - 0xaa,0xd1,0xf6,0x30,0xa9,0x8e,0xe7,0xa3,0x83,0xa3,0x04,0xa0,0xc7,0xf2,0xf7,0x06, - 0xa9,0x33,0x12,0x6a,0xaa,0x51,0x14,0x25,0xe5,0xe5,0x19,0x92,0xcb,0x6c,0x8e,0x64, - 0xa0,0x2f,0x8d,0xe4,0xa6,0x1f,0xd7,0x91,0x85,0x7e,0x26,0x9e,0x50,0x3e,0x3d,0xf8, - 0x31,0x6a,0xe7,0xf9,0x67,0x8c,0xad,0x5e,0xa8,0xd3,0xd7,0x3e,0x37,0x2a,0x18,0x44, - 0x62,0x4e,0x6a,0x1c,0xda,0xf1,0x90,0x3a,0x62,0x2e,0x2a,0xed,0xbd,0x99,0xda,0xba, - 0x52,0xc7,0x8d,0x3a,0xa5,0xdd,0xa3,0x87,0xbd,0x77,0xa9,0x03,0xe9,0xc5,0xc1,0x4b, - 0x18,0x93,0xdf,0x45,0x3d,0x7c,0xea,0x45,0x0f,0x91,0xb9,0xb4,0xbc,0x38,0x78,0x81, - 0x70,0x31,0x2f,0xe2,0x4a,0xfc,0x02,0x44,0x65,0x89,0x7c,0xb4,0x3d,0x2f,0x0e,0x86, - 0x47,0x47,0xb1,0x9f,0x6f,0xe8,0xf2,0x95,0x36,0x5f,0x2f,0xea,0x44,0x9c,0xb7,0x87, - 0xc6,0x8e,0x9c,0x83,0x5f,0x68,0x1f,0x7f,0xb7,0x15,0xb4,0x51,0x33,0xef,0x80,0x5e, - 0x34,0x30,0x39,0xa9,0x59,0xd0,0xa3,0xda,0xa0,0xed,0xb0,0x7c,0xc7,0x55,0x60,0x52, - 0x68,0x37,0x0e,0x5f,0x8e,0x3b,0x35,0x03,0xfa,0x07,0xae,0xe9,0xc1,0x9a,0xf2,0x16, - 0xe9,0x70,0x5c,0xf8,0xa6,0xbc,0x05,0x9b,0xf2,0x1a,0x32,0xd1,0x1e,0x75,0x3b,0x78, - 0x11,0xb1,0xe7,0x2d,0x7a,0x51,0x3f,0xea,0x9d,0x62,0xd8,0x8c,0xdd,0x2e,0xa0,0x9a, - 0x91,0x24,0x83,0x18,0x74,0xbe,0x5e,0x86,0x87,0xb0,0xbd,0x9c,0xc1,0xa9,0xe1,0xa5, - 0x90,0x56,0x63,0xb7,0x62,0x5c,0x9f,0x2d,0xe6,0x41,0x0d,0x9f,0x2b,0x7f,0x5d,0x5c, - 0x2e,0xba,0x12,0xb8,0x94,0x01,0x02,0x52,0xfa,0x1c,0xc4,0xdd,0x56,0xa3,0xdd,0xee, - 0xe1,0x75,0x2f,0xfe,0x66,0x47,0xa1,0x86,0x65,0x69,0x2e,0x34,0x08,0xb4,0xd2,0x46, - 0xb3,0x28,0xbd,0xd0,0xf0,0x81,0x29,0x97,0x8f,0xa9,0x80,0xdd,0x8d,0x7b,0xe9,0x65, - 0x71,0x32,0xad,0xe8,0x95,0x4d,0xb8,0x73,0x31,0x6e,0xd6,0x25,0x65,0xea,0x57,0x1a, - 0x62,0xea,0x67,0xd9,0xdf,0x66,0x35,0x75,0x58,0xda,0xe0,0x02,0x3a,0x68,0x54,0x13, - 0x5e,0x9d,0x12,0x23,0xaf,0x6e,0x31,0x24,0x19,0x6b,0xcb,0x70,0x72,0x10,0x0d,0xa9, - 0xfa,0x17,0xf4,0xfb,0x92,0x7e,0xbf,0xa3,0xdf,0x5d,0xfa,0xfd,0x9e,0x7e,0xff,0x4a, - 0xbf,0x7f,0xa3,0xdf,0x1f,0xe8,0x17,0x38,0x3c,0x8c,0xaf,0x11,0x0d,0x91,0x75,0xf8, - 0x32,0x3a,0xd2,0x10,0xdb,0x21,0x40,0x85,0xdd,0x81,0x6a,0xea,0x2c,0x96,0xe0,0xd4, - 0x27,0xf3,0xe0,0x20,0x3f,0xa2,0x09,0xa6,0xee,0x61,0x1a,0xb4,0xeb,0xfe,0x33,0xda, - 0x99,0xe1,0x57,0x43,0x99,0xee,0x6d,0x50,0xef,0x87,0xfa,0x2b,0x07,0x53,0x7c,0x72, - 0xbe,0x24,0x32,0x52,0x26,0x10,0x92,0x4d,0x3c,0xc3,0xcb,0x8a,0x8d,0x3f,0x68,0x5c, - 0x17,0xdb,0xf4,0xc5,0xd0,0xb8,0x69,0xf5,0xba,0x98,0xa5,0x94,0x60,0x9d,0x53,0x57, - 0x3d,0x7c,0x13,0xa8,0xec,0x7f,0x32,0x5c,0xe4,0xbe,0xf7,0x5c,0x52,0xb6,0xcd,0xc5, - 0xfd,0x6c,0x63,0x98,0xeb,0x59,0x7e,0xc5,0x00,0xb3,0x5e,0x94,0x6b,0xea,0xd2,0x78, - 0x16,0x1a,0xba,0xd0,0xe7,0xf1,0x16,0x6a,0xf7,0x63,0x57,0x03,0xca,0x8a,0x2d,0xed, - 0xba,0xdc,0x13,0xa4,0xf1,0xa5,0xb8,0x31,0xef,0x47,0xdc,0x0f,0x3c,0x91,0x3b,0x6f, - 0x29,0x83,0xef,0xa7,0xf9,0xba,0xac,0xf8,0xab,0x2c,0x27,0x7e,0xb7,0x38,0x78,0xb7, - 0xc6,0x9b,0xb8,0x60,0x20,0xf5,0x51,0xfc,0xc7,0x14,0x61,0x7e,0xe4,0x25,0xcd,0xa0, - 0x46,0x67,0xac,0xf3,0xb7,0x41,0x94,0x3b,0xb3,0xb0,0x0c,0x43,0x9f,0x69,0xf4,0x52, - 0x37,0xd2,0x3e,0x66,0x44,0x84,0xdd,0xfa,0x23,0x56,0x23,0x7c,0xff,0x6c,0xbe,0x5c, - 0x62,0xc7,0xd0,0xae,0xe8,0x86,0xd8,0xb9,0x36,0x2f,0x30,0x61,0xb5,0x13,0xe5,0x2d, - 0xc4,0xab,0x77,0x59,0x79,0xce,0xd7,0xbf,0x51,0x8f,0x23,0xdf,0xfe,0x86,0x5c,0x0c, - 0x98,0xe6,0x67,0xc3,0x52,0x87,0x4e,0x5a,0x90,0x15,0x05,0x28,0x1e,0x69,0x2c,0x79, - 0x49,0xe2,0x16,0x6d,0xfc,0xab,0xc9,0xe1,0xac,0x77,0xd8,0x37,0xff,0x79,0xd6,0xd8, - 0xa7,0xd7,0x9c,0x6b,0x82,0xa2,0x1c,0x73,0xdb,0x5c,0xa9,0xfc,0xfa,0xf9,0x15,0xdf, - 0xcb,0xb8,0xdb,0x1d,0xcf,0x11,0x89,0x0a,0x42,0x87,0xc1,0x78,0x9e,0xb8,0x03,0x89, - 0x9a,0xfd,0xff,0x64,0xcd,0x6f,0xc1,0x5e,0x10,0xd7,0x03,0xd5,0x1d,0xf8,0x99,0x95, - 0xd0,0x6c,0xae,0x56,0x6f,0x6e,0xc4,0xd3,0x4e,0x8c,0x20,0xa2,0xde,0x56,0x74,0xe8, - 0xee,0xac,0xf6,0x8a,0xec,0x7a,0x5f,0xcd,0x7f,0x0f,0xf5,0xee,0xe4,0x30,0xea,0xd3, - 0xe7,0xbd,0x6d,0xb9,0x7f,0xa1,0x87,0x32,0x5b,0xa5,0xb9,0x4e,0x3e,0xbb,0xcc,0x71, - 0x29,0x0d,0x7b,0xef,0xb2,0x1f,0x19,0x6a,0xea,0x77,0xee,0x33,0xee,0xc4,0xcf,0xb3, - 0xf9,0x4a,0xaf,0xa4,0xca,0xcb,0xc5,0x62,0x8a,0xa8,0x84,0xfc,0x0d,0x37,0x8e,0xf9, - 0x0d,0x37,0x49,0x27,0x37,0x6a,0x05,0x0c,0x0e,0xae,0x98,0xfb,0x51,0x1d,0x10,0x31, - 0xff,0x27,0xd5,0xa2,0xd3,0xc7,0x4b,0xca,0x9b,0xa1,0x93,0x05,0x18,0x3e,0x34,0x13, - 0xf9,0xc9,0x34,0x04,0x51,0xb2,0x05,0x33,0x18,0x3a,0xf2,0x78,0xa2,0xe8,0xaf,0xdc, - 0xe1,0xca,0x8f,0xb9,0x92,0x48,0x3a,0xa7,0xc6,0x48,0x06,0x7d,0x81,0x24,0x78,0x58, - 0x60,0x7c,0x70,0x08,0xed,0x11,0x75,0xd9,0xef,0xd4,0x7f,0xa0,0xc3,0xa3,0xcc,0xd6, - 0xc2,0x5a,0xf2,0x97,0x36,0xff,0x1e,0xdf,0x45,0xbb,0x72,0x1a,0x74,0xb9,0x51,0x42, - 0x35,0x90,0x2d,0x3f,0x65,0xc3,0xf4,0x42,0x4a,0x38,0xbb,0x8f,0xfa,0x4f,0xd1,0x62, - 0xf1,0x22,0x65,0xc4,0x96,0x86,0xde,0xde,0x19,0x3d,0x68,0x19,0xca,0x3d,0xa7,0xc5, - 0x60,0xf4,0x42,0xee,0xb5,0x3d,0xa5,0x93,0xd7,0xc4,0xca,0x28,0x9f,0x94,0x39,0x77, - 0x3a,0x28,0x2d,0xaa,0x3c,0x41,0xcb,0xcf,0xba,0x7e,0x0b,0xd7,0xd8,0x63,0x11,0x16, - 0x81,0x59,0x01,0x25,0x8f,0x95,0xae,0x90,0x6e,0xd4,0x73,0xdc,0x9d,0x92,0x2f,0xda, - 0x84,0x10,0x97,0x81,0xb0,0xd5,0xb9,0x28,0xe0,0x91,0xd4,0xe7,0x35,0xfd,0x81,0x77, - 0x40,0x89,0x4b,0x5a,0xda,0x64,0x50,0x65,0xf2,0x7a,0x5d,0x5f,0xf2,0x2d,0xe4,0x42, - 0xb4,0xfd,0x7c,0x31,0x94,0xf5,0x85,0xe3,0xee,0x10,0x63,0x5f,0xe5,0x99,0xea,0x76, - 0x14,0x63,0xc0,0x38,0xca,0x34,0xc8,0x4a,0x7d,0x5d,0x7e,0xba,0x3c,0x03,0xfe,0x47, - 0xd7,0x1e,0xd2,0xcf,0x6c,0x31,0xe2,0x65,0x03,0xb3,0x3a,0x30,0xcb,0xd3,0xbc,0x28, - 0x9d,0x09,0x5e,0xb0,0xc0,0x29,0x8d,0x2a,0xf3,0xc9,0x5e,0xbd,0x02,0x1f,0xdb,0xbb, - 0x96,0xa9,0x4e,0x1b,0xfb,0x94,0x9c,0x1e,0x1c,0xc9,0xc7,0x6c,0x9e,0x6e,0x0f,0xc3, - 0xd6,0xde,0xc2,0xfb,0xa5,0x7b,0x3e,0xbd,0x4d,0xbe,0x04,0x88,0x2f,0x5f,0xf4,0x90, - 0xdc,0x39,0x2c,0x7b,0x3b,0x0d,0xd0,0x28,0xce,0x13,0x1c,0xc8,0xf0,0x6d,0x11,0x78, - 0x97,0xa3,0xe7,0xcf,0xa9,0xba,0x3e,0x1b,0x63,0xfc,0xea,0x52,0xe3,0xbd,0x41,0x00, - 0x23,0xf5,0xb0,0x11,0x46,0x8a,0x7a,0xf5,0x8e,0x19,0x28,0x12,0x26,0x0c,0xc6,0x53, - 0x4a,0x9f,0xbd,0x20,0xb8,0xe8,0x14,0x9f,0x1b,0xe2,0x09,0xa4,0x15,0xdf,0xcd,0x55, - 0x98,0xa0,0xe5,0x32,0x1a,0x68,0x98,0xd9,0xab,0x12,0xc7,0x0d,0x87,0x60,0x90,0x5a, - 0x4b,0x29,0x75,0x65,0x85,0x80,0xab,0x52,0x72,0xce,0x97,0x69,0xd9,0xaf,0x96,0x6f, - 0xa1,0x37,0x16,0x6f,0x3a,0x54,0x04,0x9f,0xdf,0x39,0x06,0x09,0xa3,0xb8,0xe5,0x2d, - 0xbf,0xa6,0x17,0xbe,0x76,0xb6,0x4a,0x33,0xe2,0x47,0xc2,0x9a,0xb8,0xc9,0xca,0x0e, - 0xca,0x7c,0x09,0xb4,0xc6,0x41,0x4c,0xf5,0x0b,0xd3,0x9a,0x79,0x41,0x73,0xb9,0x35, - 0x13,0xe1,0xe2,0xbb,0xc1,0xf3,0xe7,0x76,0x9a,0x2a,0xea,0x49,0x1c,0xcb,0x73,0x5b, - 0x4c,0x45,0x01,0x54,0xa5,0x1e,0x02,0xfe,0x68,0x20,0xd9,0x38,0xee,0x7d,0x3f,0xe0, - 0x37,0x1a,0x99,0x99,0xb3,0x3e,0x13,0x92,0x55,0xea,0x35,0x99,0xbf,0xd3,0xcc,0x18, - 0xc7,0x70,0x72,0x82,0xb1,0x34,0x6c,0x6f,0x69,0x99,0x5e,0xa2,0x6b,0x34,0x3d,0xdd, - 0xc3,0x4f,0xbd,0x18,0x7f,0xfb,0xdf,0x5a,0xb6,0xf7,0xd9,0x22,0x0e,0xd8,0x2c,0x2b, - 0x3d,0x19,0x3e,0x1a,0x0c,0xab,0x66,0x45,0xfa,0x63,0xd3,0x4a,0x04,0x6b,0xc6,0xd1, - 0x70,0xa4,0xb7,0xe6,0x95,0xb6,0x17,0x24,0x46,0x99,0x71,0x48,0x20,0x2c,0xcf,0x52, - 0x24,0xa9,0x04,0x4a,0x5c,0x1b,0xa7,0xf5,0x69,0x2b,0x55,0x6f,0x74,0x32,0x44,0x42, - 0x65,0xe0,0x97,0x0a,0xe8,0x56,0x77,0xa8,0xbb,0xa7,0x19,0x4d,0x03,0xf4,0xac,0x37, - 0x8c,0xc7,0x52,0xa3,0xff,0x48,0x1e,0x3c,0x98,0x15,0x24,0x8f,0xc2,0x55,0x04,0x66, - 0xf1,0x80,0xbb,0x30,0x2f,0x5b,0xa2,0x76,0x08,0x37,0x7b,0x15,0x16,0x6a,0x2c,0x15, - 0x70,0x5a,0x22,0xdf,0x70,0xf7,0xae,0x12,0x33,0x13,0xef,0x97,0x55,0xc6,0x23,0x97, - 0x5c,0xc5,0x46,0x9c,0xf1,0x07,0x8e,0x0a,0xf2,0xc8,0xa1,0x98,0xa1,0x99,0x3a,0x08, - 0x66,0x15,0xb4,0xcc,0x2f,0xd7,0x4a,0x47,0x18,0xb0,0x87,0x7c,0x70,0x09,0x15,0x67, - 0x44,0x40,0x31,0x7c,0x0d,0x18,0x6f,0x58,0xe3,0x06,0x34,0xc2,0x13,0x63,0xea,0x9c, - 0xbb,0x7b,0x44,0x84,0x81,0x65,0x19,0x92,0x7c,0xd1,0x10,0x28,0x63,0x5e,0x28,0x1e, - 0x40,0x2d,0x17,0x2c,0x1e,0xc1,0x00,0x89,0x0a,0xc7,0x78,0xf7,0x8b,0x21,0xe4,0xb4, - 0x23,0xa9,0x8f,0x95,0x83,0x86,0x08,0x6c,0x4e,0xa3,0xa8,0x51,0x1d,0x69,0x58,0x64, - 0x0b,0x28,0xe0,0x23,0x03,0x18,0x52,0x31,0x9d,0xa7,0xc6,0x83,0x74,0x12,0xd1,0xa1, - 0x71,0xa5,0xa6,0xb9,0x7c,0x18,0x5e,0x16,0xb8,0xbd,0x89,0x46,0x5d,0xcd,0xa6,0x42, - 0xd9,0x24,0xb2,0x3c,0x9d,0xaa,0x0a,0xf9,0xcc,0x3c,0xbe,0xed,0x9c,0x03,0xf8,0x70, - 0xa4,0x3e,0x96,0xf5,0x21,0x16,0xa9,0xad,0x36,0xc4,0x22,0x50,0x5b,0x59,0xcd,0xae, - 0x12,0x0c,0x9e,0x93,0xdb,0x00,0x68,0x46,0xf5,0x7a,0x2a,0x23,0xb0,0xa9,0xda,0x2b, - 0x4f,0x45,0x33,0x19,0xee,0x8e,0x0a,0x0f,0xa1,0xb8,0x86,0x82,0x20,0xa7,0x5a,0xd7, - 0xee,0x71,0x4b,0x98,0xc3,0x03,0x91,0x59,0x1c,0x39,0xc5,0xf9,0xb4,0x59,0xf4,0xb1, - 0xee,0xbc,0x13,0x47,0xbd,0xfb,0x96,0x37,0x69,0x78,0x58,0x29,0x51,0xe0,0xec,0xd6, - 0xbb,0xc9,0x3f,0x01,0x03,0xcf,0xca,0x73,0xf6,0x13,0xd4,0xdc,0x4d,0xe2,0x6b,0x63, - 0xdf,0x30,0x65,0x00,0xb6,0x02,0x53,0x61,0xb3,0x7f,0x17,0x58,0x13,0x31,0x91,0x84, - 0x69,0x3e,0xaf,0x3f,0xd5,0x67,0xe3,0xad,0xf3,0x5e,0x1a,0xc0,0x36,0x94,0x67,0x0a, - 0xb0,0x9e,0x5b,0x34,0x3e,0x8e,0x3f,0x28,0x25,0x26,0xd1,0xde,0xe5,0x7e,0xd4,0xe3, - 0xed,0x18,0xed,0xed,0xd0,0x67,0xde,0x63,0x71,0x0f,0x6d,0x28,0xc4,0x1c,0x49,0x03, - 0x19,0x6d,0xcd,0xc9,0xbf,0x33,0xfa,0x83,0xb4,0x4b,0x34,0x4e,0x50,0x20,0x0c,0x94, - 0xba,0x60,0x3f,0xc8,0xce,0xa5,0x51,0xf2,0xa1,0xf7,0xc6,0xf8,0xbe,0x31,0x82,0x0a, - 0x1e,0x3a,0x59,0x6c,0x50,0x9f,0xbc,0x0f,0x53,0x8e,0xcd,0x7a,0xa7,0x81,0x35,0x75, - 0xdc,0x3b,0x7d,0x76,0x76,0x68,0x01,0x91,0xb1,0x43,0xb8,0x2c,0xd2,0x1c,0x70,0x59, - 0x32,0x83,0xed,0xd1,0x68,0xa1,0xfe,0x5f,0x16,0x32,0x87,0xcb,0x82,0x23,0xc8,0x48, - 0x57,0xde,0x14,0xd5,0xf2,0xb7,0x3c,0xbb,0x8e,0x1b,0x29,0xdd,0x3b,0xb6,0xd1,0x1e, - 0xd1,0xce,0x9b,0x82,0x0d,0xe4,0x88,0xc3,0x0d,0xc8,0xf3,0xfc,0x1d,0x5e,0x71,0x66, - 0xdc,0x61,0x64,0x51,0x85,0x47,0x9b,0xae,0x35,0x5a,0x5c,0xfa,0x97,0x16,0x7c,0x17, - 0xe1,0x27,0x07,0xa3,0x30,0xff,0xf6,0x30,0x1e,0x75,0x35,0x4f,0x6f,0xd6,0xab,0x55, - 0xf6,0x6f,0xe1,0x77,0xae,0x55,0xc7,0xac,0xde,0xa7,0x57,0xec,0x94,0xd9,0x35,0x03, - 0x94,0xa5,0x5a,0x94,0x28,0x0c,0x83,0x56,0x67,0x01,0x68,0x75,0x5e,0xac,0xd2,0x60, - 0x8f,0xd0,0x28,0x15,0x2b,0xf5,0x4b,0xc6,0xc2,0x1b,0xe3,0xab,0x65,0x24,0x51,0xd7, - 0x79,0x7e,0xc3,0x3b,0xc5,0xec,0xb9,0x31,0x33,0xcb,0x12,0x4b,0xdb,0x84,0x54,0x9b, - 0x1a,0x4e,0x57,0x9c,0xe0,0xaa,0xe9,0x05,0xb3,0xc7,0x9d,0xe9,0xfa,0x8c,0x75,0x06, - 0x6c,0x97,0xbd,0x3c,0x3d,0x85,0x4d,0x94,0x40,0xc6,0xd5,0xde,0x82,0x58,0x97,0x5f, - 0xb2,0xdb,0x6e,0xfb,0xd0,0xde,0xd9,0xa6,0x37,0x8e,0xfb,0x83,0x51,0xa8,0x96,0x80, - 0xa4,0x66,0xbf,0x07,0x33,0x32,0x9a,0x1a,0x6e,0x59,0x40,0x71,0xb6,0xd0,0x8a,0x16, - 0x46,0x2e,0x99,0x9f,0xac,0xec,0x98,0x0e,0xa0,0xcf,0xb1,0xf4,0x64,0x33,0xa3,0x55, - 0xd0,0x92,0x17,0xc5,0x46,0xb1,0x47,0xe5,0xb5,0xaf,0xcf,0x9f,0x17,0x7b,0xbc,0xb9, - 0xcd,0x57,0x3c,0xc2,0x85,0xe4,0xab,0xaa,0x5b,0xe0,0x2c,0xe5,0x87,0x36,0x21,0x2e, - 0x10,0x3d,0x06,0xcd,0x23,0x9f,0x21,0x17,0x1e,0x88,0x9a,0xab,0x79,0x9f,0xde,0xc7, - 0x8e,0x56,0xcb,0x7b,0xa1,0x86,0xb1,0x1d,0x45,0x33,0x10,0x6e,0x8c,0x06,0x2e,0x8e, - 0xae,0x63,0xd8,0x9b,0xc8,0xe9,0x8b,0x25,0x8e,0x11,0xb6,0x1b,0x0c,0xd0,0xd3,0xb3, - 0x2b,0x50,0x1d,0xe4,0xfd,0xbb,0xd8,0x9b,0x76,0xe3,0x07,0x5f,0x3a,0xd9,0x54,0xdf, - 0x46,0x24,0xf6,0x75,0x2b,0x12,0x3b,0xa8,0xc3,0x58,0x9c,0x95,0xbd,0xdd,0xa6,0xaf, - 0xd0,0x5b,0x5b,0x94,0xa8,0xbc,0x1e,0x5d,0x16,0xbb,0x07,0x0c,0x0a,0x9b,0x8d,0x58, - 0xdd,0x3b,0x14,0xfc,0x07,0xe6,0x83,0x0b,0xea,0x45,0x07,0x3e,0xe7,0xb3,0x4f,0x56, - 0xb6,0xe8,0xd8,0x2f,0xea,0x85,0xae,0xb3,0x49,0x1a,0xc1,0x2e,0xdc,0x38,0x75,0x21, - 0xaa,0xac,0x2c,0x1d,0xd9,0xb4,0x25,0x75,0x99,0x7b,0xcd,0xf8,0xb1,0x0b,0xb4,0xf2, - 0x3d,0x59,0xe6,0x7d,0xbe,0x99,0x48,0xed,0x36,0x1e,0x9b,0xb6,0x6b,0x35,0x3c,0x98, - 0x4e,0xf5,0xd2,0x59,0xad,0x1a,0x53,0x62,0xe0,0xa7,0xef,0xd7,0x2b,0x90,0xd6,0xf4, - 0xad,0x1c,0xd5,0xb0,0x5d,0x78,0x50,0x39,0x21,0x78,0xe2,0x0d,0xf2,0x8d,0xec,0x1c, - 0x77,0x86,0xea,0x56,0xb1,0x05,0x2c,0xb5,0xab,0xd6,0xb7,0x77,0x48,0xa5,0xc9,0x14, - 0x04,0x5c,0x1a,0x3b,0xc6,0xc7,0xee,0x16,0xb4,0xfe,0x1f,0xc4,0xe7,0x89,0x66,0xf2, - 0xc1,0x5f,0xb4,0xbc,0xda,0x9b,0x6b,0x4c,0x41,0xfc,0x3c,0x0f,0x29,0xef,0x2d,0xcc, - 0x96,0x78,0x68,0xc8,0xd2,0xcd,0x8a,0x10,0x3c,0x2d,0xa8,0xc7,0x8b,0x53,0xe3,0x5e, - 0x2b,0x19,0xbe,0x18,0x7c,0x55,0x75,0x4c,0x63,0xeb,0xfd,0xfa,0x39,0xaf,0xbe,0xae, - 0x33,0xc4,0x74,0xb5,0xec,0x43,0x89,0x7f,0x8b,0xbd,0x43,0xcf,0xe5,0xee,0x06,0x7c, - 0x15,0x11,0xd7,0xa8,0x75,0x93,0x8e,0x3d,0xca,0xeb,0x63,0x39,0x70,0xa9,0x57,0x40, - 0xb0,0xfe,0xd7,0x2a,0xba,0xbf,0x77,0x5f,0x61,0x81,0x1d,0x99,0x38,0x8c,0x69,0x2d, - 0x7d,0x32,0x1c,0x61,0xb9,0xb7,0xb5,0xa3,0xcb,0xca,0x6a,0x22,0x62,0x77,0x98,0x4a, - 0xec,0xe9,0x70,0x63,0xd4,0x1c,0xbe,0xb9,0x9d,0xd7,0x05,0xdf,0x14,0xdc,0x7d,0x55, - 0xfd,0x2c,0x99,0x7e,0xcd,0x59,0xc0,0x85,0x8e,0x17,0x18,0xf6,0x71,0x4b,0x9b,0xe5, - 0xc9,0x74,0x95,0x45,0x96,0x64,0xb8,0xfe,0xb7,0x33,0x83,0x60,0xb8,0x5d,0x0c,0x0c, - 0x6f,0x9d,0x05,0x55,0x4b,0xdd,0x73,0x33,0xb0,0x6f,0x23,0xea,0x2e,0xbd,0xd4,0x49, - 0xb5,0x9e,0xff,0x82,0xeb,0x9a,0x0d,0x13,0xa5,0x2a,0xe7,0x87,0xad,0xaf,0x59,0x1f, - 0xac,0x65,0x6d,0x5b,0x1d,0x27,0x1c,0xe4,0x82,0xaa,0x5b,0xb1,0xbe,0xf1,0xef,0x40, - 0x76,0xb9,0x57,0x8d,0x52,0x90,0xaa,0x54,0x28,0x8c,0x79,0x01,0x35,0x7e,0x7a,0x72, - 0x8c,0x78,0x17,0xc8,0xd3,0xe5,0x00,0x61,0x51,0x6c,0x81,0x36,0x9f,0xed,0x1c,0x1c, - 0xae,0x0f,0x8b,0x23,0x15,0x0d,0xf8,0x5a,0xc2,0x56,0xd0,0x3a,0x71,0xdc,0xa7,0xc5, - 0x8c,0x25,0xed,0x0f,0xd3,0x35,0x54,0x09,0x28,0xa4,0x0f,0x60,0x81,0x98,0xba,0x51, - 0x95,0x79,0x46,0xa2,0x86,0xaa,0xa4,0x79,0xa6,0xb2,0x8e,0x3e,0xd1,0x17,0x5c,0xb8, - 0x70,0x96,0x9e,0x7e,0x1b,0x07,0xb3,0x22,0x08,0x2d,0x61,0xa9,0x50,0xc7,0xf7,0x5e, - 0xa3,0xc0,0xaa,0x4a,0x6e,0x7b,0x5b,0x78,0x1a,0xd1,0x5b,0x9f,0x67,0x73,0xb8,0x96, - 0x5b,0xc5,0x5e,0x3f,0x0a,0x36,0x8e,0x57,0x6f,0x8a,0x1b,0xd3,0x3b,0xaf,0x6d,0xd3, - 0x9d,0xb6,0x63,0xd8,0xa3,0x89,0x98,0x69,0x75,0xb4,0x46,0x89,0xb6,0xa3,0xcc,0x0d, - 0x93,0xbb,0xf2,0x81,0x14,0x8f,0x24,0xab,0x1c,0xa3,0x69,0xb8,0x3f,0x5c,0xdf,0x1f, - 0x16,0x3b,0x2d,0x1c,0xb5,0xd3,0x5f,0xcd,0x59,0x7f,0x25,0xa3,0x29,0x53,0x38,0xbf, - 0xbf,0x9f,0x1b,0x26,0x64,0x00,0xae,0x24,0xfa,0x8b,0x11,0x4c,0xc7,0x0d,0x9d,0x29, - 0xb1,0x81,0x6c,0x19,0x50,0x2a,0x78,0x06,0x42,0x63,0x54,0xe5,0xd6,0x3c,0x9d,0x7b, - 0xac,0x54,0x77,0x32,0x3a,0xd8,0xff,0xe6,0xe8,0x1e,0xc6,0xc1,0xd0,0xec,0x1e,0x96, - 0xdf,0xd2,0xf7,0xbf,0x1c,0xc5,0x56,0x59,0x86,0x7a,0xaa,0xe5,0x9c,0x8d,0x48,0xa1, - 0x76,0x9f,0xb2,0x11,0x39,0x9b,0x9f,0x9f,0xac,0xf3,0x55,0xc5,0xdc,0x8e,0x53,0x34, - 0xcc,0x03,0x65,0x02,0xde,0xdf,0xf7,0x37,0xfd,0xf8,0xe6,0xd3,0x2f,0x30,0xf1,0xd8, - 0xf9,0x9d,0x1d,0x16,0xbe,0xd9,0x49,0xc4,0x73,0xa1,0x6c,0x73,0x59,0x10,0xe7,0xa1, - 0xc0,0x73,0xc1,0x37,0x77,0x75,0x5e,0x0c,0x09,0x2a,0xb4,0x2e,0x19,0x54,0xa7,0x08, - 0xf2,0x35,0xb7,0x2b,0xd5,0x21,0x97,0xa1,0x2b,0xc7,0xce,0xef,0x7e,0xa9,0xd6,0x0c, - 0x5d,0xe3,0x6b,0x71,0x6f,0x7c,0x33,0x62,0xca,0x2d,0xa6,0xa3,0x4d,0x07,0x8e,0x9d, - 0xdf,0x9d,0x63,0x0c,0x65,0x9b,0xa9,0x63,0x4c,0xe9,0x3c,0x63,0xe0,0x4b,0x93,0x5d, - 0xdb,0x6b,0x83,0xc0,0x31,0xa6,0xd4,0x3a,0x42,0x37,0x15,0x8c,0x13,0x52,0xca,0x86, - 0xa3,0x0a,0x6b,0xce,0x3a,0x02,0x25,0xd5,0x85,0x49,0xec,0x3d,0x82,0x29,0x1d,0x96, - 0x54,0x40,0x81,0x9c,0xe4,0xbe,0x9e,0xb7,0x4a,0xe0,0xae,0x8f,0x48,0x92,0x5e,0x15, - 0x35,0x18,0xaa,0xa0,0x86,0xaa,0x81,0x3c,0xb1,0xe3,0x1b,0x01,0x84,0x88,0x11,0x30, - 0x53,0x61,0xf8,0x18,0x63,0x31,0xb0,0xca,0x00,0xfc,0x53,0x08,0x34,0x8d,0xa2,0x34, - 0x2c,0x2e,0x4b,0x03,0xa6,0xe8,0xba,0xc0,0xa6,0xfc,0x41,0xc3,0xeb,0xba,0xd3,0x06, - 0x55,0x3e,0xed,0x5c,0xaf,0x61,0xde,0xcf,0x3b,0x57,0xc5,0x19,0x67,0x57,0x09,0x1f, - 0x19,0x63,0x97,0xe9,0x6a,0x86,0x53,0x47,0xe3,0x8d,0x4e,0xad,0x8b,0xc7,0x9f,0xa8, - 0xd5,0x68,0x7c,0x1a,0xb5,0xd6,0x10,0x26,0x5d,0x1f,0x56,0xeb,0xab,0x43,0x9c,0xfd, - 0x5c,0x42,0x37,0x60,0xb9,0x61,0x41,0x07,0x51,0x23,0x88,0xac,0x7c,0xcc,0xcb,0x8b, - 0x52,0x68,0xce,0x9d,0x1f,0xd4,0xce,0x2a,0x09,0x99,0xb8,0x35,0xa3,0xf3,0xa8,0xc5, - 0x04,0x76,0x5d,0x0b,0xa1,0x51,0x78,0x52,0x56,0x3b,0xe3,0x48,0x00,0x08,0xe6,0x33, - 0x0e,0x76,0xb7,0x66,0x23,0x87,0x3b,0xf7,0x39,0x1d,0x8e,0xed,0x0e,0x47,0x82,0x1e, - 0x75,0xcd,0x8d,0x1e,0x5c,0xc4,0xfa,0xb4,0x52,0xc9,0x21,0xad,0x8c,0xd4,0xa3,0xc4, - 0xfb,0xea,0x84,0x2e,0x0a,0x01,0x7a,0x18,0xcb,0x81,0x83,0x1c,0x46,0xaa,0xd2,0x2c, - 0x06,0x1d,0x11,0x43,0x91,0x86,0x63,0x92,0x2c,0x8b,0x2c,0xad,0xd1,0xf7,0xf1,0x86, - 0x1b,0xf7,0x04,0x1a,0xa5,0x27,0xee,0xcb,0xad,0xfa,0x84,0x6f,0xcc,0x23,0x2e,0x7c, - 0x72,0xba,0x30,0xf1,0x20,0x9e,0x28,0x7e,0xee,0x97,0x05,0x58,0xe8,0x79,0x70,0xdd, - 0x4e,0x7d,0x9d,0x44,0x1f,0xf9,0x42,0x29,0x2f,0xcd,0x61,0x35,0x89,0x46,0x5d,0x4d, - 0x24,0xd2,0xd5,0x89,0x7a,0xde,0xdb,0xf8,0x77,0x55,0xb4,0xb4,0x38,0xb8,0xe5,0xc4, - 0x74,0xd3,0xbf,0xb2,0x37,0xb1,0x14,0xae,0x6d,0x20,0x26,0xef,0x28,0xb5,0x0c,0x3c, - 0xab,0x7f,0x10,0x69,0x0e,0x2c,0xbc,0x81,0xf2,0x44,0x9c,0x69,0xe2,0x58,0xbb,0xd7, - 0x3d,0xc0,0xf4,0xd1,0xae,0x8c,0x37,0xae,0x29,0xab,0xef,0x79,0xca,0xec,0xc0,0xb7, - 0x3a,0x88,0xe6,0x45,0x64,0x64,0x8a,0x4d,0xa5,0x4a,0x34,0x5a,0x84,0xb8,0x5c,0xa0, - 0x93,0xc4,0xc5,0x4e,0x6f,0xbb,0xd7,0xdb,0xfa,0x52,0x79,0x6f,0x68,0x6f,0xf1,0x86, - 0xb1,0x05,0x23,0x02,0xda,0x24,0x1e,0xd1,0x68,0x75,0x22,0x98,0x3c,0xf8,0x23,0x53, - 0xa0,0x37,0x81,0x75,0x43,0xd8,0x07,0x04,0x91,0x86,0x75,0x03,0x6d,0x81,0x96,0x71, - 0x9d,0x39,0xb1,0x9e,0x97,0xa8,0xb9,0xb0,0x79,0xfc,0xf5,0x2b,0xff,0xf5,0xaf,0x23, - 0x58,0x1a,0x05,0x78,0x1b,0xbf,0xc2,0x5b,0x46,0x4e,0xbd,0x75,0x09,0xfb,0x22,0x5d, - 0xe7,0xf4,0x02,0x72,0xef,0x28,0x70,0x0a,0xec,0xbe,0x3b,0x13,0xfa,0x9d,0xf1,0x19, - 0x26,0xd8,0x3a,0x20,0xdf,0x2b,0x89,0xf2,0x5e,0xef,0x6f,0x65,0x34,0xc3,0xbc,0x57, - 0x1c,0x02,0x94,0x48,0xef,0x8f,0xf7,0x7a,0x5d,0xef,0xf5,0x3a,0xec,0xf5,0x7f,0xbc, - 0xfa,0xf8,0xfe,0xcd,0xfb,0x7f,0x8c,0x04,0xfc,0x25,0xea,0x49,0x13,0x32,0x07,0x63, - 0xa6,0xf2,0x8c,0x08,0xd4,0xd2,0xab,0xb5,0xe9,0x55,0xc3,0x2c,0x81,0xa8,0x0e,0xf8, - 0x71,0x3a,0xb8,0x94,0x67,0x84,0x51,0x65,0x40,0xc5,0x94,0xc6,0xd0,0x51,0x2c,0x87, - 0xcc,0xbd,0x3d,0xec,0x63,0xa3,0xea,0x3e,0x21,0xd9,0xcc,0x61,0x3d,0x3e,0xfa,0x8e, - 0xab,0xfa,0x3b,0xae,0x36,0xbc,0xa3,0x71,0xdd,0xae,0x39,0xe1,0xf2,0x84,0x8d,0x98, - 0x03,0xad,0xd9,0x40,0x58,0xd7,0xdc,0x7d,0x58,0x3f,0xe0,0x42,0xd9,0x62,0xe7,0xf0, - 0x99,0xbb,0xce,0x4e,0x2f,0xcb,0x4c,0x41,0x89,0x60,0x4c,0x21,0xbe,0xa9,0xea,0xe3, - 0x2a,0x8e,0x5d,0xb7,0xf0,0x4e,0x6f,0x1b,0xc0,0x95,0x45,0xee,0x38,0xae,0x8a,0xf2, - 0x89,0x77,0x44,0x16,0xff,0x35,0xf1,0x5d,0x77,0xe0,0xd9,0x72,0x63,0x59,0x8d,0x23, - 0x1a,0x8f,0xcf,0x96,0x7e,0xe1,0xb3,0x25,0xc2,0xad,0x2f,0x5b,0xc9,0x98,0x21,0x5c, - 0x9b,0x48,0x96,0x05,0x81,0xf9,0x8a,0x56,0x8b,0x65,0x0d,0x77,0x6d,0x5a,0x9c,0x64, - 0x73,0x0c,0x05,0xde,0xc6,0x1f,0x8b,0xb3,0xa5,0xbe,0x62,0xb0,0xcb,0x97,0xa2,0xdc, - 0xf6,0xd3,0x90,0xc9,0xe7,0xd1,0xc1,0x4d,0xce,0x2d,0x87,0xce,0x55,0xa8,0x7a,0xdc, - 0xc4,0x02,0x7c,0x62,0x60,0xcb,0xda,0xe2,0x29,0x9b,0xb6,0x54,0xf5,0x3e,0xb0,0xa0, - 0x80,0xf1,0x5b,0x16,0x56,0x4b,0x97,0x16,0xe1,0xd7,0x27,0x75,0x76,0x63,0xa9,0x80, - 0xd5,0x72,0x69,0xa8,0xe9,0xc0,0x0b,0x99,0xe9,0x28,0x14,0xa8,0x68,0x64,0xbe,0x6c, - 0x9c,0x18,0xe4,0x62,0xe1,0x95,0x32,0xca,0x31,0x4a,0x6d,0x14,0x8f,0xb5,0xa1,0xf3, - 0x31,0x17,0x72,0x54,0xa8,0x2c,0x06,0xe0,0x40,0x80,0x5d,0xf4,0xa3,0x4d,0xa6,0x54, - 0x4d,0xe3,0x32,0x1a,0xa1,0x78,0xfc,0x94,0x4d,0x58,0x58,0x19,0x54,0x3c,0xa2,0xe0, - 0x86,0x3c,0xc2,0x50,0x63,0x62,0x87,0xd1,0xd1,0x1b,0xb9,0x82,0xfe,0x95,0xec,0x6d, - 0x2e,0x0e,0xb2,0x0b,0xf6,0x92,0xbd,0x5d,0x51,0x1f,0x1b,0xd7,0x53,0xa2,0x55,0xf0, - 0x2c,0x7d,0xcb,0xdb,0xc7,0x55,0xf1,0x09,0x48,0xb2,0xa7,0x0d,0x33,0x42,0x59,0x28, - 0x1f,0xb2,0x88,0x06,0x65,0xa4,0xa7,0x02,0x75,0xca,0x4d,0x4f,0x2f,0xa7,0x22,0x39, - 0x57,0x8a,0x2b,0x3f,0xa8,0x0f,0x22,0x92,0xed,0xec,0xf7,0x32,0x62,0xd9,0x57,0xf5, - 0x0a,0xbe,0x18,0x6b,0xf2,0xb0,0xc1,0x92,0x2b,0x32,0x91,0x02,0x62,0xe7,0x34,0x0e, - 0x15,0xef,0xc2,0x29,0x1d,0x20,0xeb,0x51,0xec,0x8b,0xd6,0x86,0x41,0xd3,0x47,0xbe, - 0xd4,0x8b,0x45,0x61,0x92,0x6b,0xc3,0xf7,0x23,0x8d,0x16,0xad,0x37,0xb1,0xa6,0xe2, - 0xb1,0x23,0x62,0x50,0x9f,0x2e,0x0b,0x6e,0xa9,0x8f,0xfa,0xfc,0x88,0x08,0x49,0xed, - 0x11,0x86,0x0c,0x17,0x41,0xaa,0xe6,0x60,0x91,0xe0,0x5d,0x36,0xcb,0xa7,0xdd,0x88, - 0xc4,0x2e,0xf6,0x03,0x19,0x9d,0x4a,0x04,0x6e,0x79,0x98,0x95,0xf1,0x57,0x59,0xd6, - 0xd8,0x55,0xcd,0xdd,0xe4,0x3e,0x2b,0xfe,0x98,0xb3,0x01,0x93,0x00,0xaf,0x5f,0xf2, - 0x59,0xba,0xb8,0xf8,0x98,0x7d,0x79,0x33,0xb3,0x44,0x80,0x4d,0x97,0xd2,0x50,0xfb, - 0xe0,0xb3,0xad,0xc3,0x49,0xb4,0xd6,0xfd,0x35,0xd8,0xa9,0xed,0x30,0xd9,0x7e,0xb2, - 0xbd,0x7c,0xbc,0x35,0xaa,0x2d,0x4a,0xee,0xb8,0xbd,0x11,0xff,0xcf,0x35,0x8e,0xf0, - 0x5f,0x1b,0x02,0x1b,0xd6,0x0e,0xed,0x86,0xae,0xcb,0x9a,0x0c,0x12,0xe9,0x58,0xa2, - 0xa1,0x4b,0xda,0x80,0xd4,0xb6,0x7c,0x24,0xb5,0xd4,0x22,0xa9,0xdd,0x99,0x41,0x60, - 0x33,0x1a,0x04,0xb0,0x47,0x45,0x8e,0xf6,0x79,0x2b,0x26,0x53,0xcb,0x2d,0xc4,0x50, - 0x19,0x7c,0x27,0x3a,0x98,0x02,0x01,0x4f,0xb9,0x69,0xf1,0xde,0xb7,0x26,0x6f,0xe7, - 0xd3,0x52,0x74,0x2e,0x45,0xb9,0x9c,0x03,0xe5,0x75,0xc6,0xb3,0xb6,0x89,0x40,0x6c, - 0x6a,0xe6,0x87,0xe7,0xcf,0x71,0xc1,0x43,0x6f,0xfa,0x2c,0x4d,0xf9,0x6f,0xa3,0xdd, - 0x57,0xa8,0x0f,0x5e,0xe5,0x66,0xdf,0x5b,0x88,0x4d,0x33,0x13,0xdb,0xdb,0x82,0xaa, - 0xd9,0x61,0x53,0x4c,0x40,0xce,0x6d,0x6e,0x70,0x70,0x7f,0xef,0x7f,0x1f,0xbe,0xac, - 0xb7,0x67,0xc7,0x90,0x21,0xe0,0x14,0x6c,0xf4,0xd8,0x01,0x89,0xfa,0x95,0x7f,0xcd, - 0x54,0x35,0x4d,0xc0,0x6d,0x53,0x8b,0xf2,0xcc,0x5b,0xa5,0x3a,0x41,0x5b,0x3a,0x43, - 0xde,0x69,0x03,0xe8,0x4e,0x33,0x71,0x0d,0xd4,0xb9,0x9a,0xb5,0xab,0x23,0xac,0xad, - 0x0f,0x0c,0x8d,0xad,0x5d,0xfd,0xd6,0x5e,0x02,0xf8,0x34,0xe6,0x3d,0xa8,0xf1,0x32, - 0xc9,0x67,0xf3,0xac,0x0c,0xe2,0x61,0x50,0xa9,0x1d,0x71,0x99,0x9b,0xc8,0x4e,0x8a, - 0x7a,0x34,0x39,0x34,0x3e,0xff,0xfa,0xf8,0xe6,0xa7,0xe5,0x62,0x45,0xe7,0x12,0xc7, - 0x36,0xfe,0xc2,0x01,0xc2,0x9f,0xa3,0x46,0xca,0xc2,0x15,0xdf,0x55,0xa2,0xa1,0x1f, - 0xed,0x0e,0x06,0x83,0x87,0x78,0x6b,0x43,0xf4,0x0c,0x09,0x4a,0x0f,0x4c,0x40,0xb4, - 0x1e,0x09,0x84,0xe2,0x63,0x0b,0xe5,0x2d,0x6d,0x39,0xe8,0xa7,0x4e,0x2e,0xe0,0xd1, - 0x22,0x86,0x16,0x66,0xcd,0xf0,0x12,0x61,0x9c,0x12,0xd8,0x8b,0x2a,0x6a,0x6b,0x66, - 0x04,0x70,0x6e,0xa9,0xb6,0x6a,0xb4,0xfd,0xd4,0xb4,0x2f,0xbd,0xe2,0x81,0xd8,0xdb, - 0x0d,0x2e,0x1a,0xc2,0xeb,0x82,0xaf,0x1b,0x4b,0x18,0x01,0x25,0x30,0xa5,0xf6,0xd7, - 0x52,0xb8,0xdb,0x94,0x7f,0x2c,0xa0,0x54,0x61,0xcb,0xcc,0xfc,0x4a,0x61,0x7e,0xf5, - 0x24,0x77,0x1d,0xc6,0x7c,0x36,0xa0,0x63,0xeb,0x02,0xdc,0x0d,0x0b,0x70,0xa1,0xf9, - 0x2b,0xeb,0x3f,0xd1,0xc3,0x5e,0xae,0x51,0x5c,0x44,0x7a,0xbe,0x48,0xbb,0x37,0xfd, - 0xe5,0xc5,0x33,0x0e,0x39,0x10,0x4f,0xf0,0x79,0xf4,0x0c,0xf7,0xaf,0xdf,0xd2,0x2b, - 0xd4,0x60,0x67,0xbd,0x72,0xfc,0x3d,0x0d,0x1e,0x78,0x2a,0xc7,0xfd,0xc3,0x72,0xe2, - 0xec,0xf0,0x04,0xb2,0xd6,0x74,0x67,0x79,0x31,0x61,0xcb,0xdb,0x11,0x2f,0xf6,0x44, - 0x1e,0xaa,0x9a,0x15,0xdd,0x6b,0x20,0xe3,0x7a,0x48,0xe6,0xde,0x4a,0x99,0x31,0x58, - 0xfb,0x5d,0x4d,0xed,0xbb,0x3f,0x8c,0x5b,0x76,0x8f,0x25,0xe4,0xb2,0x2c,0x81,0xb5, - 0xd8,0xa4,0xe7,0x08,0x21,0xf7,0x27,0x26,0x1a,0x9b,0xff,0x21,0x79,0xb1,0x3b,0x08, - 0xae,0x4d,0xea,0xb4,0xb7,0xb1,0xf5,0x71,0x29,0x02,0x95,0x1a,0x77,0x3e,0x59,0xff, - 0x3f,0x91,0xfa,0x1a,0x49,0x6c,0x25,0xfd,0x66,0x31,0x2e,0x19,0x62,0x03,0xce,0x77, - 0xd3,0x92,0xa3,0x1e,0x62,0x4a,0xd8,0x4c,0x3b,0xd8,0x6f,0x75,0x0a,0x4c,0xeb,0x7e, - 0xef,0xc5,0xe0,0x7f,0xb0,0x6b,0x7a,0x43,0xa5,0x41,0x0f,0xc9,0x5f,0x1f,0xd9,0x35, - 0x42,0x02,0x04,0xf5,0xc8,0xb8,0xb9,0x0b,0x6c,0x70,0xc0,0x39,0xe2,0x64,0x0a,0x0e, - 0x8f,0xa7,0x29,0x43,0x0b,0x25,0x0f,0xa6,0x4a,0x75,0x03,0xcb,0x4b,0x60,0x96,0x99, - 0x08,0x51,0x9b,0xb5,0x73,0x6c,0xbe,0xe5,0xe9,0x12,0x8d,0x2c,0x1b,0xab,0x40,0xac, - 0x68,0xe5,0x9c,0xad,0x4b,0xa3,0x66,0x83,0x03,0xc4,0x7e,0x66,0xd3,0x9c,0x1a,0xc5, - 0xaa,0xdd,0xa8,0x24,0xc6,0x2e,0x7a,0xdf,0xa7,0xe5,0xa9,0xb9,0x90,0xf3,0x91,0x68, - 0x61,0xd0,0x8f,0xbb,0x13,0x9f,0x2a,0xf0,0xee,0xc3,0x75,0x8b,0x07,0x7c,0xcc,0x5a, - 0x52,0x83,0x09,0xce,0x43,0xa7,0xc7,0x62,0xbf,0xf3,0x33,0x40,0xc9,0x14,0x2d,0x8f, - 0xa5,0x62,0xe3,0x02,0x20,0x31,0x87,0xfa,0x4d,0x9c,0x68,0xd7,0xfe,0xff,0x2d,0xd8, - 0xac,0x6b,0xf5,0x89,0x49,0x68,0x53,0xf2,0xdb,0x01,0xde,0xd4,0x41,0x2e,0xa3,0x80, - 0x63,0x3e,0x68,0xb1,0xe0,0xdf,0x50,0xff,0x8e,0xf9,0x29,0x0d,0xcd,0x31,0x1d,0x47, - 0xd4,0x2b,0xc5,0x1d,0xfe,0xe0,0x97,0x13,0x46,0xd1,0xd8,0xf1,0xfa,0x17,0x19,0x4f, - 0xb6,0xff,0xbf,0x82,0xc6,0x5b,0x5f,0xcf,0x3f,0x8b,0x6c,0xc4,0x76,0xb6,0x57,0xa9, - 0x32,0xe6,0x57,0x79,0x79,0x39,0x9d,0xc3,0x1e,0x0b,0x97,0x0f,0x89,0xd3,0xaa,0x1a, - 0x9b,0x88,0xea,0xfe,0x9e,0x93,0xb6,0xc1,0xe6,0x3e,0x66,0xb7,0x2e,0xf9,0xae,0xb6, - 0x49,0x1e,0x7c,0x34,0x9f,0x15,0xa2,0x2a,0x55,0x57,0x9e,0x33,0xcf,0x02,0xd9,0xa9, - 0xd3,0xfe,0x83,0x0b,0x2f,0x9c,0xfa,0xea,0x60,0xc2,0xa5,0xca,0xf3,0x2c,0xab,0x80, - 0x8d,0xc2,0x85,0xc5,0x48,0xf8,0x2a,0x90,0xf5,0x80,0xcd,0x93,0x56,0xea,0xb8,0x6f, - 0xf8,0x22,0x17,0xd1,0x83,0x3a,0xbb,0xe0,0xb0,0x59,0xb8,0x58,0xfd,0x71,0x79,0x59, - 0xcc,0x68,0xb4,0x7f,0x62,0xc7,0x2c,0x9a,0x6f,0x1a,0xa9,0xfe,0xf1,0xb2,0xa2,0x91, - 0xdd,0xae,0x9e,0xc8,0xd0,0xfb,0x5e,0x65,0x0b,0x09,0x58,0x00,0x88,0x91,0x63,0x92, - 0xfa,0xd8,0x6a,0xa6,0x3c,0x6e,0x1d,0x08,0x01,0xd1,0x8d,0x25,0x10,0x47,0x4a,0x99, - 0x9a,0x9d,0xac,0x88,0xc3,0xdb,0xdc,0x32,0x3d,0xdd,0xbe,0xba,0xd2,0x62,0xc4,0x0c, - 0xaa,0xbb,0x19,0x80,0x3a,0x52,0xc6,0x9b,0x5e,0xa3,0x54,0x97,0xb2,0xc8,0xf8,0x6c, - 0xa3,0x80,0x44,0x04,0x11,0xe7,0x2d,0xe4,0xdc,0xc3,0x08,0xc5,0xb5,0x59,0x70,0xc0, - 0xd5,0x7f,0x1b,0x24,0x9c,0x8d,0xd8,0xbb,0xd5,0x4d,0xe4,0xa6,0xab,0xa6,0x5d,0x2e, - 0x2f,0xcf,0x18,0x6a,0xc7,0x6b,0x36,0x1c,0xf4,0x6f,0x07,0xfd,0xef,0x5f,0x48,0x25, - 0xf1,0x26,0xe5,0xfd,0x93,0x3a,0x03,0x26,0x2e,0xad,0x4b,0x96,0x56,0x74,0x6b,0x7a, - 0xcb,0x05,0x3d,0xed,0xaa,0xfc,0xbf,0xb2,0x28,0x91,0xbd,0xe0,0x22,0x47,0x3e,0x59, - 0x50,0xfa,0xe2,0x15,0xf4,0xc3,0xac,0x41,0x94,0xa5,0xc9,0xe9,0x2a,0xf2,0xb4,0x18, - 0x5f,0x89,0x5b,0xd6,0xc6,0x10,0x9e,0xaa,0x2a,0x7d,0xe6,0x3c,0xb8,0x9c,0x01,0x12, - 0xbb,0x34,0x8b,0xc5,0x0c,0x7f,0x14,0xea,0xef,0x39,0xab,0x3d,0xb4,0x47,0xbc,0x74, - 0x1a,0x14,0x74,0x21,0x47,0xac,0xe2,0x5c,0xae,0xae,0xae,0xcf,0x21,0xc2,0x55,0xd3, - 0xe3,0x31,0xe3,0x68,0xc3,0x47,0x1c,0x1c,0x74,0x5e,0x6d,0x19,0xaa,0x30,0xf6,0x86, - 0xf7,0x4f,0x8b,0xea,0x77,0xaa,0xdb,0xfa,0xc4,0xdd,0xd2,0xc8,0x9d,0x18,0x2b,0x01, - 0x34,0x1f,0x6f,0xed,0xed,0xc8,0xcd,0xf2,0x3e,0x7d,0x3a,0x5e,0xce,0x6e,0xf1,0x17, - 0xe1,0xa4,0xf7,0xb7,0xfe,0x1b,0x9d,0x66,0x44,0xc7,0x88,0x93,0x01,0x00, + 0xad,0x35,0x76,0xe5,0x47,0x24,0xbb,0x48,0x16,0xeb,0x21,0x5f,0xa4,0x76,0xa4,0x7a, + 0xa8,0x3b,0xad,0xdf,0xad,0x03,0xa5,0xdc,0x9c,0x58,0xbc,0xcd,0xc0,0x45,0xb4,0x07, + 0x14,0x66,0xb1,0x09,0x99,0x07,0x41,0x12,0xe4,0x17,0xe6,0xad,0xa9,0x9d,0x2e,0x12, + 0x4c,0x4f,0xec,0x4b,0x37,0x29,0x8d,0xbb,0x59,0x7e,0xcc,0xf6,0xdb,0xcd,0x1f,0x3f, + 0x86,0xad,0x1e,0x6c,0xaf,0x8f,0x30,0xde,0x81,0x76,0x0a,0x2a,0x6b,0x58,0xbf,0xcb, + 0x78,0x68,0xbd,0x35,0x25,0x7f,0x12,0x50,0x7a,0xb9,0x80,0x22,0x1a,0xfe,0x3b,0x74, + 0x00,0x04,0x3c,0x6f,0x1f,0xd8,0x6f,0x76,0xac,0x91,0xb4,0x11,0x02,0x78,0x62,0x8d, + 0x84,0x53,0xa0,0xc5,0xe8,0x36,0xab,0xa1,0xfa,0x1d,0xa2,0x6a,0x84,0x2c,0x30,0xb1, + 0xb4,0xcf,0x30,0x61,0x82,0x22,0x12,0x26,0xe0,0xa6,0x24,0xc2,0x10,0xf2,0x30,0x5c, + 0x81,0xac,0xd7,0x08,0x29,0xf9,0x82,0x9f,0xba,0x97,0x28,0xfd,0x72,0xed,0x7c,0xd1, + 0xf9,0x5a,0x8f,0x5c,0xb9,0x38,0x22,0xe0,0x12,0x1e,0x62,0x02,0xcd,0xfb,0xcc,0xf5, + 0x25,0x15,0x43,0x79,0x1a,0xcb,0xaf,0x58,0xfc,0x38,0x6a,0x83,0x56,0x20,0x05,0xf2, + 0x95,0x38,0x78,0xfe,0x2b,0x08,0xcf,0x37,0x30,0xf1,0x96,0xf3,0xc3,0xdc,0x58,0x8f, + 0x04,0xa4,0xb7,0x62,0xdb,0xb7,0x5f,0x8a,0x7d,0xdf,0xef,0x3c,0x6d,0xbb,0x73,0x4c, + 0x01,0xcd,0x77,0x2f,0x01,0x74,0xdc,0x3f,0x2c,0x19,0xca,0x16,0xe3,0x3b,0xd8,0x44, + 0x04,0xa5,0xcd,0xb9,0x63,0x27,0xb3,0xa1,0x46,0xae,0xec,0x02,0xca,0xf1,0xc2,0xaf, + 0xa0,0x68,0x45,0x1c,0xfc,0xe8,0xc2,0x9e,0x94,0x8b,0x06,0xcb,0x05,0xc2,0x13,0x7a, + 0x36,0x6e,0xa5,0x1a,0xfa,0x1b,0xb9,0xce,0x91,0x76,0x32,0x0b,0x41,0x4b,0x40,0x99, + 0xe8,0x67,0x14,0xd7,0x85,0x06,0x95,0xd5,0x41,0xc1,0xc8,0xd4,0xd0,0x1b,0x03,0xd6, + 0x94,0x14,0x63,0x13,0x57,0x3d,0xc0,0x24,0xb7,0x9d,0x2e,0x40,0xa3,0xf0,0x78,0x37, + 0xd5,0x2a,0x14,0xa4,0x71,0x1f,0x47,0x51,0x59,0xa5,0x00,0x5d,0xf6,0xda,0x0e,0x26, + 0x30,0x38,0xd7,0xf1,0xd2,0x90,0x54,0x06,0xab,0xb4,0xd1,0x4a,0x5b,0x21,0xd3,0x4a, + 0xdb,0x15,0x95,0x38,0xca,0x58,0xfa,0xdf,0xb1,0x23,0x4e,0x5d,0x32,0xb6,0x33,0xf5, + 0x9c,0x02,0x5b,0x0a,0x81,0xcc,0xca,0x2e,0x2c,0x54,0xac,0x80,0xdc,0x91,0x2e,0x0c, + 0xdc,0x2c,0x61,0xed,0x90,0x44,0x55,0x0d,0xdd,0x97,0x98,0x36,0x43,0x0e,0x69,0xc6, + 0x08,0x64,0x26,0x87,0x24,0x57,0xb2,0x30,0x0e,0x5b,0x0d,0xad,0xde,0x19,0x0d,0x5a, + 0xb5,0x4d,0x3e,0xba,0x37,0xca,0xf4,0x56,0xab,0xc6,0x12,0x27,0xf3,0x14,0x85,0x44, + 0x76,0xf7,0xca,0xc2,0x48,0xe0,0xde,0xe4,0x8a,0xf2,0x2a,0xd4,0xec,0xee,0x29,0x1c, + 0x7b,0x1d,0x62,0x4e,0x11,0x2f,0xe2,0xf9,0xd3,0x06,0x3e,0x99,0xce,0xff,0xe4,0xd0, + 0x9b,0xf1,0x46,0x08,0x73,0x0d,0xd2,0x6c,0x91,0x6c,0x77,0x81,0x9e,0xfc,0x60,0x4f, + 0xae,0x14,0x7a,0x5d,0x2f,0xa7,0xb1,0xc5,0xa9,0x28,0x32,0x67,0xd4,0x06,0x09,0x54, + 0x1b,0xad,0x48,0x85,0xe6,0xcf,0x20,0x81,0x68,0x57,0x0b,0x45,0x2f,0xb4,0x31,0xc5, + 0x25,0xd6,0x50,0xc3,0x55,0x56,0xf5,0x10,0x10,0x3f,0x54,0x7a,0x00,0x9e,0x9e,0x75, + 0xc0,0xcc,0x07,0x39,0x5a,0x95,0xf7,0x54,0x58,0x50,0xff,0x29,0x2c,0xa8,0x9f,0xb3, + 0x20,0x6e,0x9e,0xf6,0x5b,0x2d,0x0e,0x7c,0x1a,0xb3,0xa6,0x2a,0x74,0x9d,0x30,0xf6, + 0x60,0xa3,0x19,0xeb,0x70,0xf7,0xf9,0xef,0x69,0x6a,0x71,0xf9,0x7a,0x05,0xa6,0x0e, + 0x57,0x7f,0x0a,0x6f,0x58,0xa5,0x0e,0x65,0xbf,0xcc,0xba,0xa6,0x48,0x48,0xbd,0x14, + 0xd8,0xc4,0x14,0xb7,0x69,0xb4,0x18,0x03,0xe1,0x9b,0x21,0x51,0x24,0x5e,0xbf,0x13, + 0xc1,0x8a,0x03,0xf7,0xca,0x58,0xbe,0xf6,0x2e,0x40,0x8b,0x0d,0x1d,0x6e,0x00,0x91, + 0x25,0xbe,0x28,0xa9,0x2f,0x2a,0xa7,0x99,0x0d,0x2c,0x0d,0x23,0x6f,0x02,0xdd,0xc5, + 0x38,0xc4,0x19,0x73,0x49,0xac,0x04,0x9c,0x11,0xa8,0x20,0x48,0x5f,0x50,0x0e,0x75, + 0xc7,0x7c,0xf3,0x23,0x20,0xd6,0xd9,0x3d,0xef,0x8e,0xcf,0x8f,0x25,0xe1,0x9f,0x40, + 0xc5,0xb5,0x61,0xe6,0xc1,0x47,0x51,0x2c,0xaa,0xc2,0x2f,0xdf,0xc8,0x19,0x82,0x35, + 0x3a,0xb8,0xae,0xc3,0xbe,0x3e,0x82,0xcc,0xe0,0x82,0xc0,0x6a,0x7b,0x31,0xba,0x7d, + 0xd1,0x80,0x4d,0xcd,0xb5,0x2e,0x2d,0x64,0x29,0xaf,0xdf,0x7c,0x64,0xcd,0xfa,0x0b, + 0x82,0x0d,0x19,0x05,0x42,0x4d,0x43,0x9b,0xf6,0x5a,0x84,0xe4,0xd3,0x4d,0x00,0x2b, + 0x49,0x8b,0x36,0x41,0xd5,0x60,0x7d,0xf4,0xc1,0x8a,0xf5,0xca,0xd8,0xe3,0xda,0x70, + 0xad,0xce,0x56,0x99,0xf9,0xa7,0x48,0xe0,0x88,0x44,0x0f,0xa1,0xc7,0xa0,0xda,0xa2, + 0x0c,0x59,0x0b,0x85,0xf9,0x0d,0x5b,0xb4,0x03,0x5c,0x54,0x16,0xd5,0xdf,0xc1,0xe6, + 0x5d,0x38,0x0c,0x16,0x44,0x21,0xed,0x3f,0x7f,0x39,0x4f,0x50,0xa2,0x46,0xfc,0xf5, + 0x98,0xff,0x00,0xbb,0x4e,0x60,0x3d,0x10,0xb0,0xc2,0x1a,0xe4,0xb3,0xa8,0x85,0x43, + 0xf1,0xe6,0xb9,0x11,0x69,0x7d,0x60,0xd2,0x9d,0xf5,0x7a,0x38,0x52,0x56,0x09,0x90, + 0x22,0x6d,0xdd,0x6d,0x58,0x01,0x0a,0x19,0x87,0xbc,0xda,0xa9,0xe2,0x2e,0xa2,0x69, + 0xa0,0xbe,0x92,0x9b,0xc3,0x00,0x40,0x49,0x08,0x24,0x43,0x82,0xa1,0x34,0x35,0x24, + 0x45,0x6c,0x02,0x53,0xa8,0x8f,0xb4,0x4b,0xf8,0x61,0x9a,0xfc,0x5d,0xfc,0xa0,0xb7, + 0x26,0x3f,0xa8,0x10,0xea,0x12,0xdd,0xff,0x00,0x60,0xcc,0xc8,0x7e,0x89,0x28,0x3f, + 0x4e,0xf5,0x8b,0x24,0x5e,0xb6,0x75,0xea,0xe2,0xb1,0xd5,0x1a,0xd4,0x7d,0x77,0x3d, + 0xea,0x9e,0x31,0x17,0x6a,0xb7,0x4d,0xe7,0x22,0x3a,0x93,0xfc,0x5d,0x45,0xeb,0xa0, + 0x5c,0x6d,0xd3,0x9e,0x47,0x43,0x32,0x91,0x55,0x57,0x80,0x1b,0x58,0xb5,0x04,0x2c, + 0x97,0x9e,0xd9,0xd7,0xb4,0xea,0x99,0xe5,0x91,0xe5,0x78,0x40,0x11,0xd4,0x27,0x41, + 0xb1,0x04,0x3d,0x2d,0xc9,0x48,0x27,0x28,0xaf,0xc0,0xf1,0x33,0x3b,0xa1,0xed,0x38, + 0x68,0x0c,0x11,0x82,0x28,0xeb,0x99,0x40,0xe4,0x03,0x10,0xba,0xd8,0xbf,0x06,0x6d, + 0x14,0xb1,0xa0,0xc6,0xe7,0xc2,0x0e,0x4d,0xaa,0x0a,0x90,0x78,0xc5,0xbc,0x48,0xe2, + 0x9a,0x59,0xb0,0x17,0xba,0xe3,0x85,0x07,0x30,0x27,0xa2,0xf5,0x64,0xfc,0x29,0x02, + 0x11,0x8f,0x33,0xcb,0x38,0xd5,0x5f,0x03,0xa7,0x9a,0x18,0x3f,0x02,0x5c,0x6d,0x8f, + 0x6c,0xb7,0x00,0x47,0x97,0x90,0x0b,0xcd,0x34,0xbc,0x30,0xc2,0x6e,0xbb,0xca,0xb6, + 0x53,0x3c,0xb5,0x80,0xb6,0x8b,0x47,0x16,0xfc,0x27,0x2a,0xf0,0x87,0x82,0x1b,0xb9, + 0x72,0x42,0x8c,0x0e,0x9d,0x50,0xf5,0x29,0xb2,0x7f,0x9d,0x74,0x8e,0x8d,0xd4,0xa8, + 0x04,0x2c,0x18,0x37,0x1e,0x9a,0xd8,0x51,0xb4,0x0a,0xbf,0x31,0xa0,0x09,0x4f,0x91, + 0x7e,0xe5,0xc0,0x26,0x0a,0x07,0xd4,0x9e,0x64,0xa9,0xc2,0x69,0xc3,0x69,0xbd,0x58, + 0x26,0x2b,0x20,0x49,0x04,0xb9,0xb8,0x76,0x13,0xcb,0x32,0x68,0x06,0xd3,0x0f,0xf9, + 0x08,0xa1,0xa9,0x0c,0x0a,0x1f,0x09,0x6e,0x30,0xf8,0xd3,0x5c,0x0a,0xe0,0xa8,0x1f, + 0x9e,0xbc,0x7f,0xd7,0x6c,0x41,0x48,0x59,0x1c,0x6c,0x96,0xda,0x3e,0x92,0xfc,0xd0, + 0x2c,0xa5,0x7d,0x54,0x2c,0x2e,0x4f,0x35,0xb8,0x3c,0x66,0x67,0xeb,0xee,0xf7,0x0f, + 0x76,0xb3,0x9e,0x7e,0xf0,0x17,0x6e,0x0a,0x88,0x39,0x5b,0xdb,0xca,0x33,0x96,0x35, + 0xac,0xba,0xee,0x35,0xc5,0x23,0x6a,0xa4,0xa3,0x49,0x4b,0x1e,0x45,0xb7,0x37,0xfd, + 0x74,0x98,0x49,0x5c,0x78,0x1e,0xbb,0x9a,0x55,0x49,0x56,0xaf,0xe5,0x43,0xe4,0x38, + 0x80,0x2c,0xb1,0x69,0xaa,0x0d,0x14,0x48,0xcc,0x34,0xf4,0x7d,0x12,0x36,0xd7,0x14, + 0xeb,0x14,0x88,0xec,0xef,0xed,0xf5,0xf7,0x6b,0x20,0x22,0x08,0xda,0xd3,0x80,0x32, + 0xb7,0x27,0x05,0x98,0xa0,0xe3,0x42,0x05,0x26,0x52,0x7d,0x15,0x3d,0xd4,0x02,0x02, + 0xcb,0x9d,0xf4,0x06,0xdd,0xee,0xa0,0xd7,0x1b,0xf4,0xfb,0x83,0xdd,0xdd,0xc1,0xde, + 0x1e,0x90,0x45,0xd0,0x63,0xc3,0xb9,0xfc,0xdb,0x26,0x6b,0x63,0x9b,0xcd,0x7e,0x78, + 0xac,0xc4,0xa9,0x64,0xee,0x6b,0x8b,0xb3,0x11,0x4b,0x3b,0xf1,0xd1,0x84,0x84,0x02, + 0x21,0xac,0x43,0x51,0x81,0x16,0x23,0xb0,0xf8,0xe4,0xc9,0x09,0x5d,0x3e,0xec,0x51, + 0xcf,0x8d,0x52,0xd7,0xf6,0x01,0x1a,0x53,0xdf,0xbe,0x5c,0x13,0xa0,0xdd,0x7e,0xb7, + 0xf3,0xa2,0x57,0x03,0x51,0xd1,0x56,0xc5,0xae,0x54,0x05,0xa3,0x28,0x09,0x6d,0x84, + 0x84,0x10,0xda,0xb5,0x0d,0x79,0x42,0xc2,0xf9,0x34,0x9d,0xbe,0xda,0xe1,0xf4,0x4a, + 0x3e,0x50,0x8b,0x4f,0x41,0x9e,0xdb,0x6c,0x89,0x3a,0x7c,0x17,0x38,0x6e,0xe4,0x92, + 0xa3,0x15,0x4a,0x83,0x38,0x57,0x01,0x0d,0x69,0x66,0xb1,0x34,0x20,0x7e,0x78,0x41, + 0x3d,0x71,0x05,0x0b,0x03,0xb5,0x63,0x01,0x3a,0x85,0xaf,0x51,0x68,0x3b,0xe0,0x5c, + 0x1e,0x9e,0xe8,0x09,0x96,0x67,0x4f,0x26,0x6e,0x94,0xb2,0x72,0x42,0x42,0xe2,0x38, + 0xc4,0x63,0x15,0x2d,0x72,0xdd,0x18,0x9a,0x0a,0xb2,0xe6,0xe9,0x3a,0x0c,0x0e,0x3a, + 0x76,0xd1,0x6c,0x9f,0xc8,0x76,0x60,0xa5,0x08,0xee,0x50,0xc2,0xfd,0x7d,0xe1,0xc5, + 0xe8,0xe3,0xc0,0x7c,0xa3,0x19,0xf0,0x74,0x26,0xa5,0x80,0xbe,0xe9,0x64,0xff,0xf0, + 0x3d,0x74,0x99,0x2e,0x9c,0x7a,0xba,0x52,0xb6,0x9f,0x01,0x0f,0x96,0x66,0x72,0x3b, + 0xb8,0xd3,0x57,0x4b,0xb0,0xef,0xc3,0xe0,0xf2,0x09,0x4d,0x87,0x41,0x6d,0xd3,0x7f, + 0x93,0x95,0xa9,0x2a,0xd3,0x00,0x87,0x4c,0x32,0x5b,0x10,0x5a,0x81,0x14,0xcd,0x90, + 0x40,0x4d,0x27,0xb1,0xec,0x62,0x01,0x44,0x67,0x0e,0x45,0x92,0x92,0x25,0xa8,0x4c, + 0x6c,0x32,0xd1,0x45,0xda,0xe5,0x72,0x3b,0xd4,0x2a,0xeb,0xcc,0xbf,0xdb,0x98,0xf4, + 0xff,0x0f,0xeb,0x90,0xb2,0xc2,0xef,0xc3,0x53,0x5b,0x98,0xb8,0x0b,0x3e,0x49,0xe8, + 0x82,0xa6,0x81,0x74,0xa4,0xb8,0x19,0xb1,0x01,0x06,0xbd,0x18,0xf5,0xc3,0xec,0x8c, + 0x43,0xc3,0x98,0x9c,0x77,0xe2,0x90,0xaa,0x09,0x41,0xde,0xe2,0x66,0x73,0x83,0xc9, + 0x9d,0xa9,0x8d,0x61,0xed,0x45,0x94,0xd9,0xb3,0xb7,0x84,0x2b,0x27,0xa7,0x7c,0xee, + 0xc5,0x27,0x3f,0xa4,0x31,0x92,0x1d,0xdd,0xbd,0x85,0x95,0x55,0x8c,0x10,0xb6,0x76, + 0x13,0xc3,0x36,0x60,0x32,0x24,0xce,0x66,0x14,0xe5,0x69,0x2a,0xe8,0x8b,0x17,0x67, + 0xf4,0xe3,0x16,0x28,0x03,0x61,0x19,0x1f,0xa0,0xaf,0x90,0x6b,0x6b,0x97,0x2b,0x1b, + 0xb5,0xd6,0xfa,0xf0,0xd3,0x1f,0xc6,0xe3,0x5b,0x2f,0xbe,0x84,0xea,0x50,0x49,0x6e, + 0xbe,0x8e,0xd5,0xe9,0x74,0xe5,0xe1,0xd8,0x5e,0x47,0x98,0xc9,0x7b,0x7b,0x9d,0xce, + 0x23,0x88,0xf2,0x83,0x04,0x92,0xd6,0xba,0x5a,0xbb,0xe7,0xf1,0x8d,0xd2,0xaf,0xec, + 0xf6,0x85,0xe8,0xb4,0xd0,0xe7,0xd3,0xc0,0x70,0x16,0xc5,0xae,0xed,0xd0,0xd1,0x1a, + 0x71,0xb4,0x7a,0xd6,0x82,0x23,0x48,0xa6,0x19,0x33,0x39,0xdc,0x2b,0xb3,0x8f,0xc3, + 0xfd,0x4a,0xca,0x8b,0x4a,0xca,0x41,0x25,0xe5,0x65,0x25,0xa5,0xdb,0xa9,0x26,0x75, + 0xab,0x49,0xbd,0x2a,0x87,0x7a,0x64,0x73,0xd2,0x1c,0x41,0x7b,0x72,0x9b,0x67,0x38, + 0x89,0xff,0xc6,0x19,0x96,0x87,0xf5,0xf4,0x13,0x9a,0xbf,0xf1,0x80,0x66,0x2d,0x62, + 0x21,0x15,0x95,0xea,0x3e,0xaf,0x43,0x20,0x85,0x67,0xe6,0x92,0xca,0xb1,0x07,0xcc, + 0x7e,0xee,0x96,0x70,0x69,0xe5,0x44,0xec,0x69,0x8e,0xd8,0x12,0xaf,0x3b,0x8d,0xc7, + 0x9e,0xf6,0xb4,0xed,0x4c,0x56,0x9e,0x7a,0x29,0xe3,0xca,0xa5,0xf4,0xd3,0x5f,0x41, + 0xf6,0xf5,0xf1,0xb8,0xde,0x4e,0xd6,0xe3,0xb2,0xf1,0x2d,0x55,0xa8,0x1b,0x9b,0xd8, + 0xe8,0x2b,0xb7,0x5c,0x61,0x1c,0x7b,0xdd,0x9e,0xba,0xd4,0x3c,0x92,0x27,0x80,0x28, + 0x7d,0x74,0x2c,0x8f,0xaf,0xbc,0xea,0x99,0x56,0x10,0x78,0xd0,0x65,0x80,0xc9,0xfb, + 0xf8,0xf0,0xe4,0xf8,0xb5,0xd6,0xa2,0x13,0xb4,0x40,0xba,0x4b,0x91,0x01,0x75,0xee, + 0xa5,0x06,0xda,0x0e,0x5e,0x79,0x87,0x27,0xe2,0x64,0x1d,0x46,0xef,0x5d,0x7b,0xe9, + 0x1d,0xcc,0x26,0x65,0xe5,0x95,0xdd,0xd3,0x84,0x4b,0xab,0xca,0x6c,0xd2,0x4b,0x5f, + 0x2f,0x4e,0x90,0xce,0xfb,0xc6,0xe1,0x6d,0x3e,0xc5,0x89,0x8d,0x2c,0x6d,0x01,0x0d, + 0x2c,0x0e,0x33,0x76,0xf3,0xc8,0xc8,0xbb,0xfb,0xca,0xd0,0x61,0x85,0x81,0x67,0xe1, + 0xd9,0x9f,0x76,0x69,0x93,0x5b,0x23,0x8e,0xf6,0xec,0xd7,0x6e,0x6f,0xff,0x16,0x44, + 0x94,0x89,0xeb,0xa1,0x6d,0x8d,0x64,0xcb,0xbf,0x34,0x50,0x62,0x93,0x56,0x7c,0x8b, + 0x9d,0x3c,0x79,0xc4,0xbd,0xce,0xae,0x0a,0xee,0xb7,0x6f,0x3e,0x68,0x72,0xdc,0x62, + 0xc0,0x6f,0x6e,0x41,0xdc,0x41,0xed,0x6d,0x1a,0xa3,0x19,0x01,0xa4,0xeb,0xf6,0x3c, + 0x74,0x16,0xbe,0xab,0xbd,0xff,0x78,0xfc,0x37,0x0c,0x7c,0xea,0xce,0xff,0xec,0xe0, + 0x0f,0xba,0x2f,0x7b,0xca,0xe0,0x5f,0xb3,0x2e,0xc9,0x74,0x2b,0x21,0xbb,0x97,0x98, + 0xc3,0xa9,0xeb,0x2c,0x26,0xae,0x54,0x36,0x51,0x08,0xf8,0xf1,0xf3,0x19,0xec,0x5e, + 0x5f,0x94,0xfe,0x4b,0xd3,0xa0,0x16,0xb8,0xbb,0x55,0x33,0x50,0x88,0x40,0xe7,0xe5, + 0xbe,0x90,0x70,0x6e,0xa3,0xa4,0xcd,0xee,0x9d,0xe5,0x69,0x16,0xf0,0xa8,0x66,0x4a, + 0xaf,0x17,0xe9,0x5d,0x7b,0x72,0x87,0x3e,0xef,0x28,0x86,0xb0,0x58,0x25,0x90,0x6a, + 0x48,0xd2,0x09,0x4a,0xb4,0x09,0xc5,0xdd,0xf7,0x82,0x45,0xb8,0x48,0x64,0xf6,0x9f, + 0x9f,0x2c,0x0e,0x17,0xad,0x4d,0x74,0x05,0x62,0x8d,0xd5,0x22,0x45,0x26,0x9b,0x27, + 0xb3,0xa1,0xa4,0x91,0xef,0x9f,0xfe,0x0a,0x6b,0xe2,0x83,0xf6,0xeb,0x37,0xf0,0x43, + 0xea,0x9d,0x0a,0x54,0x74,0x48,0xd0,0x91,0xba,0x5a,0x0b,0x5d,0xc3,0xdd,0xf8,0x9a, + 0xae,0x71,0x1a,0x4d,0xea,0x24,0x60,0x4c,0xaf,0x29,0xaf,0xaf,0x1f,0xf6,0x9b,0xf2, + 0x80,0x74,0xef,0x36,0xe5,0xed,0xe9,0x87,0x7b,0x5a,0x6b,0x6c,0xfb,0xc4,0xad,0x1a, + 0xbb,0x06,0xea,0xb0,0xdf,0x94,0xf7,0x42,0xaf,0x32,0x6f,0x99,0x07,0x3b,0xf4,0xa0, + 0x29,0xef,0xa5,0x5e,0x15,0x59,0x32,0xa8,0x00,0x43,0xa8,0x4a,0x2f,0x32,0x17,0xb4, + 0xa2,0x85,0xed,0xe3,0xe1,0x33,0xfe,0xd5,0x52,0x3a,0x1e,0x48,0xea,0xf4,0x6c,0x15, + 0x25,0xf8,0x92,0x64,0x95,0xfa,0x44,0x49,0x93,0x9d,0x2a,0x43,0x00,0x94,0xeb,0xe6, + 0x80,0x3a,0xed,0xa9,0xe7,0xfa,0x4e,0xee,0x26,0x28,0x92,0x57,0xad,0xba,0xac,0x5a, + 0x59,0x78,0x98,0xe1,0xf1,0x02,0x6d,0x45,0x71,0x38,0xd7,0x92,0x8a,0xe4,0xd8,0x00, + 0x17,0x58,0x88,0xee,0xbe,0x96,0xdc,0xcd,0xc7,0xa1,0x9f,0x34,0x22,0x03,0x60,0x4a, + 0xbf,0x57,0x2d,0xf5,0xb8,0x18,0x85,0x81,0x3b,0x15,0x35,0x06,0xe7,0x2e,0x81,0xdd, + 0xe8,0xa3,0x43,0x5b,0x53,0xbb,0xf1,0x02,0x07,0x2a,0xb7,0x36,0xe7,0xde,0x24,0x0e, + 0x87,0xc9,0x3a,0xa2,0x38,0x01,0x28,0x96,0xc2,0x57,0xb7,0xd3,0xe9,0x64,0xe2,0x17, + 0xff,0x2f,0xf7,0x8e,0x5b,0x2d,0x91,0x9e,0xa1,0xc3,0xfa,0x9f,0x1f,0x02,0xf9,0xbb, + 0x3f,0x69,0x14,0x0d,0xbe,0x90,0x39,0xd4,0xd8,0xaa,0xd3,0x5c,0xbc,0xc8,0x0e,0xfa, + 0x2a,0x33,0x38,0xa5,0x90,0x60,0x82,0x58,0xbe,0x0d,0xe3,0x1b,0x34,0x39,0x90,0x9e, + 0x07,0xf2,0xc3,0x74,0xea,0x4d,0x2c,0xed,0x13,0x10,0xc9,0x11,0xbb,0xe7,0x04,0x6d, + 0x32,0xf1,0xb4,0x12,0x50,0xe4,0x7c,0x79,0xb2,0x9d,0xf0,0xcd,0x14,0x71,0x90,0x9d, + 0xe0,0xdd,0x8b,0xbf,0xc2,0xed,0x68,0x40,0xeb,0x52,0xcd,0x4c,0x78,0xca,0xec,0xff, + 0x68,0xfe,0x57,0x2d,0x9c,0xbb,0xcd,0x66,0x21,0xf2,0x5a,0xb2,0xc9,0xce,0xa5,0xb5, + 0xe6,0x8a,0x33,0xc0,0x6a,0xb1,0x97,0x2a,0x58,0x74,0x8b,0x0e,0xb6,0x40,0x59,0xa0, + 0xdb,0xad,0x15,0x81,0x0f,0x3b,0x00,0xc2,0x10,0x8d,0x77,0x8f,0x9e,0x8a,0xbe,0xf5, + 0xc3,0xd0,0xc9,0x86,0x35,0x8b,0x93,0xf5,0x86,0x35,0xc5,0x6a,0xd6,0xea,0xc1,0x75, + 0xf7,0x0f,0x56,0x0d,0xce,0xd4,0x5c,0x3f,0x71,0xb5,0xfe,0x66,0x40,0x9a,0x3d,0x94, + 0xae,0xf5,0x37,0x6c,0x50,0x45,0x14,0x5b,0x04,0x8d,0x45,0xb5,0x57,0xd1,0x9c,0x90, + 0xe0,0xf0,0x89,0x10,0x7c,0x45,0x49,0x93,0x51,0xe2,0xa7,0x30,0x02,0x64,0x03,0xc1, + 0x95,0x0f,0x64,0xa9,0x2d,0x89,0x8c,0x8a,0x61,0x61,0xca,0xb8,0x9a,0x58,0xc0,0xd3, + 0xd9,0x45,0x0d,0xa8,0x11,0xf3,0x71,0x90,0x91,0xa0,0x8c,0x97,0xdc,0x69,0x01,0xde, + 0xab,0x1b,0x87,0x0b,0xf4,0xeb,0x4d,0xc3,0x50,0x23,0x3b,0x39,0x59,0x28,0x22,0x3b, + 0x86,0x0e,0x84,0xf1,0x93,0xf0,0x1d,0x7d,0xea,0xe1,0x9b,0x6e,0x37,0x58,0x6b,0x98, + 0x1b,0x7b,0x07,0x8d,0x98,0xf5,0xc1,0xbe,0x15,0xe3,0x9e,0xd1,0x44,0xd7,0x5e,0x3e, + 0x58,0xa5,0xd2,0x92,0x55,0xf0,0x57,0xac,0x98,0x58,0xa3,0xfd,0x5d,0x4b,0x13,0x9e, + 0xe9,0x1a,0xfc,0x5e,0x03,0xbd,0x70,0x6c,0x02,0xb9,0x9e,0x3e,0x38,0x81,0x5f,0x7f, + 0x7e,0x8c,0x07,0xf5,0x2e,0xac,0x8d,0xe6,0xf4,0xde,0x41,0x61,0xe0,0x8b,0x20,0x99, + 0x84,0x11,0x3a,0xbc,0xfc,0x49,0xe8,0x5a,0xb2,0x85,0xea,0x14,0x9e,0xe2,0x23,0x79, + 0x1c,0x45,0x3e,0xfa,0xf1,0x00,0x47,0x65,0x7f,0x9d,0x84,0x5d,0x6b,0x82,0x50,0xfa, + 0xc9,0x50,0x2f,0x96,0xa6,0xc0,0x60,0x95,0xe6,0xfb,0x28,0x19,0xeb,0xed,0xed,0x2b, + 0x74,0x0b,0x76,0x88,0xa2,0xbc,0x35,0x9c,0x28,0xe0,0x26,0xb3,0xb8,0xd8,0x93,0xcf, + 0x12,0xd0,0x51,0x70,0x4e,0x42,0x0f,0xff,0x68,0x2c,0x07,0x3b,0x11,0x2d,0x33,0x50, + 0x50,0xfc,0x6a,0x2a,0x99,0xa4,0xb1,0x87,0x03,0x39,0xa3,0xbf,0x6b,0x9d,0x52,0xbc, + 0x8e,0xf1,0x3d,0x00,0x5e,0x69,0x09,0x65,0x76,0x18,0xf5,0x51,0x7e,0xb9,0xd3,0x80, + 0xc0,0xc4,0x77,0x85,0xdb,0x82,0x33,0x1b,0x4d,0xd6,0xdc,0x07,0xd0,0x84,0x91,0x36, + 0x75,0x6f,0xc8,0x3b,0x1c,0x79,0x0a,0x2e,0x97,0x4f,0x83,0x74,0xa4,0x8e,0xec,0x40, + 0x17,0x11,0x1e,0x3f,0x3c,0x46,0xe8,0xf8,0x6c,0x93,0x4e,0x5b,0xd7,0xf3,0x4e,0x7b, + 0x47,0xce,0x5e,0xe9,0xdd,0x9f,0xf7,0x48,0xfb,0xb7,0x3b,0xa4,0x49,0x17,0xb4,0x21, + 0x46,0x3f,0x2b,0xb9,0xa0,0x59,0xda,0x0f,0x74,0x22,0x30,0xfa,0x7b,0x3c,0xc9,0xfe, + 0xed,0x8e,0x64,0x7f,0xca,0xe9,0xeb,0xbf,0xd3,0xe7,0xab,0x6e,0x05,0x9b,0xfd,0xb9, + 0x90,0x89,0x51,0x6f,0x78,0xab,0xa2,0xe0,0xd6,0x05,0x68,0x25,0x8e,0x95,0x8d,0x3f, + 0xe9,0x92,0xb5,0xa6,0x47,0xd6,0x7a,0x96,0xca,0xcf,0x8c,0x5d,0xa4,0x9f,0xd7,0xb3, + 0xff,0x73,0xc5,0xef,0x0a,0x44,0x4d,0x3c,0xe5,0x45,0x67,0x98,0x45,0xe4,0x87,0xb6, + 0x43,0xde,0xdf,0x48,0x75,0xe9,0x76,0x44,0x1b,0x0f,0x6c,0x67,0xa4,0xc7,0xa0,0x5a, + 0x63,0xe3,0x75,0xcf,0x2b,0xc4,0x6b,0x3c,0xf4,0xfa,0x17,0x7b,0xef,0x90,0x13,0x8e, + 0xe2,0xd7,0x5c,0x27,0x1b,0xe7,0xd2,0x30,0x5d,0xfa,0x60,0x47,0x4c,0x21,0x12,0x7f, + 0x76,0x63,0x0f,0x44,0x97,0x09,0xde,0x45,0xf0,0xd3,0xd9,0x0e,0x39,0x4a,0x68,0xa2, + 0x4d,0x71,0x3d,0x83,0x7c,0x08,0xff,0x92,0xd0,0x4b,0x70,0xe4,0xd6,0xd6,0xb3,0xee, + 0xe4,0x43,0x16,0x10,0x95,0x14,0x52,0x0c,0xfb,0x83,0x4d,0x7e,0xde,0x09,0x70,0xa5, + 0xc9,0x8c,0x2f,0x4a,0x81,0xc0,0x2e,0x7c,0x4b,0xa5,0x30,0x05,0xab,0x8b,0x77,0xae, + 0xfe,0xea,0xb8,0x45,0xcf,0x4f,0x1d,0xf8,0xb1,0xe3,0x68,0xb1,0x7d,0xa3,0x71,0xdc, + 0x44,0x31,0xee,0x63,0x9f,0xfc,0x0d,0xd1,0x61,0x1d,0x8f,0xea,0x17,0x30,0x68,0xc4, + 0x76,0x2a,0x23,0xa1,0x8e,0x95,0xfe,0x26,0x90,0x43,0x53,0x4f,0x1d,0xb6,0x50,0x41, + 0x9d,0x12,0xc0,0x41,0x8f,0x42,0xa7,0x48,0xc9,0xa7,0xf0,0xe6,0x8a,0x93,0x1f,0xa5, + 0xda,0x5e,0xfc,0x37,0x0c,0xf6,0xf6,0xcf,0xe2,0x86,0x10,0x83,0xe3,0x0a,0x52,0xcb, + 0x0c,0x10,0x8a,0xd1,0xff,0x0c,0xf5,0x38,0x12,0x5c,0x12,0xad,0xf5,0xf9,0xec,0xf4, + 0xf8,0x83,0x36,0x0e,0x51,0xc6,0xa6,0xad,0x68,0xfc,0xf5,0x19,0x64,0xe3,0xf8,0x6b, + 0xea,0x5d,0xe3,0x61,0x8c,0xb0,0x78,0xa7,0xea,0xea,0x34,0x48,0x47,0x34,0x9e,0xf4, + 0xf6,0x4f,0x79,0x59,0x1c,0x03,0x56,0x9e,0xff,0xda,0x54,0x42,0x88,0xc8,0x48,0x4a, + 0x85,0xa0,0x2d,0x8d,0xd7,0x6b,0xc8,0x3c,0x25,0x34,0xca,0xd5,0x1d,0xdc,0x13,0x6b, + 0x79,0x28,0x9f,0x31,0x4d,0x92,0x1a,0xe0,0x13,0x14,0x5b,0xe6,0xb4,0x45,0xcd,0x51, + 0xde,0x1d,0xdc,0x7f,0xf4,0x98,0xf2,0x89,0x6b,0xf5,0x51,0xa2,0x82,0x32,0xd2,0x19, + 0x2a,0x6a,0x4f,0x18,0x6b,0x86,0x4e,0x95,0x51,0xf7,0xa4,0x51,0x05,0xbd,0x9b,0x1a, + 0x64,0xa1,0x70,0x8a,0x87,0x25,0x28,0xc1,0x8b,0x5d,0x42,0x0e,0x54,0xc5,0x0d,0xd1, + 0xea,0xf6,0xda,0xd0,0x86,0xa9,0x89,0xa0,0x35,0x5a,0x6f,0xd7,0xb0,0x9e,0xa2,0x14, + 0xaf,0xf2,0x0f,0xb6,0xa3,0xe8,0x71,0x07,0x61,0xa5,0x95,0x73,0x3c,0x9f,0x63,0x05, + 0xfa,0xec,0xe3,0x87,0xcf,0x2b,0xbd,0xe8,0xce,0x3f,0x8b,0x7b,0xf9,0xeb,0xca,0x2a, + 0x41,0x1a,0x35,0x88,0x26,0x05,0x17,0xae,0x28,0x0c,0x7d,0x2c,0x0b,0xd2,0xe7,0x65, + 0x2d,0x64,0x39,0x82,0x07,0xd0,0x1e,0x8c,0x17,0x23,0xb9,0xf5,0x04,0xbd,0xb0,0x56, + 0x3b,0xf2,0x34,0xee,0x69,0x98,0xf4,0x1f,0x18,0x26,0xa2,0xf5,0xf9,0xd3,0xd9,0xbb, + 0x5f,0xd7,0x91,0x8e,0x53,0x51,0x65,0x9d,0xf9,0x7c,0x38,0x3b,0x7f,0xf1,0xe1,0xf5, + 0xb9,0xf9,0xa1,0x6f,0xf5,0xac,0x8e,0xf9,0xa1,0xdb,0xb5,0xba,0x56,0x93,0x1b,0x40, + 0x8d,0x86,0xd8,0x65,0xe9,0x91,0xc7,0xf4,0xe5,0xfc,0x04,0xcd,0x28,0xca,0xf5,0xc1, + 0xd5,0x87,0x83,0x62,0x9c,0x16,0xd7,0x91,0xa7,0xc2,0x19,0xf2,0x76,0x77,0x1f,0xb1, + 0xe9,0xe5,0x84,0x1e,0xf1,0x41,0x03,0x59,0x3d,0x48,0x33,0x76,0x04,0xd2,0x04,0x10, + 0x12,0xe1,0x4d,0xe5,0xfc,0x25,0xda,0x9d,0x04,0xf3,0x68,0x0d,0x8a,0xad,0xd0,0x20, + 0x1c,0x0e,0x3a,0x14,0x2d,0x02,0x52,0x81,0x1e,0x5d,0x32,0xec,0xc1,0xca,0x2a,0x34, + 0xe8,0x34,0x8f,0x69,0x67,0xe4,0xe7,0xba,0x9e,0x76,0xc6,0x37,0xab,0x45,0x00,0x85, + 0x30,0x68,0x92,0x45,0xc9,0x27,0x0d,0xe5,0x4b,0x2a,0x1f,0x33,0x4c,0xd9,0x8b,0x30, + 0xaf,0x9c,0x39,0xc2,0x10,0xb1,0x26,0x8f,0xee,0x1b,0xb4,0x8e,0xa2,0x6e,0xc9,0x57, + 0xef,0xf2,0xcb,0x76,0xb0,0xe5,0x61,0x27,0x24,0xf2,0xbe,0xaf,0xe2,0x43,0x6e,0x69, + 0x6f,0x3d,0xbc,0xf8,0x9b,0xb2,0x67,0xf9,0xbb,0xcf,0x2c,0xd3,0x92,0xdb,0x8d,0xb8, + 0x62,0x1d,0xc6,0xc2,0x31,0x9d,0xa2,0x4e,0x88,0xf8,0x3e,0xff,0x77,0x84,0x77,0x20, + 0x52,0xf6,0xdf,0x15,0xdf,0x81,0x1a,0xff,0x77,0x07,0x78,0x90,0x33,0xfc,0xbf,0x24, + 0xc2,0x03,0x0e,0xe7,0xdf,0x1e,0xe2,0xa1,0x38,0x88,0xff,0x77,0x63,0x3c,0xfc,0x3f, + 0x11,0xc5,0x41,0xba,0x7f,0x74,0xdb,0xdd,0xbe,0x76,0xc3,0xb7,0x83,0x39,0xb2,0x42, + 0x1e,0x6b,0x81,0x03,0xce,0xac,0x8c,0xe8,0xa0,0xf8,0x04,0x5a,0xda,0x19,0xc9,0xb1, + 0x14,0x81,0x46,0xc3,0xad,0x87,0xf1,0x16,0xe4,0x9d,0x18,0x8e,0xf7,0x80,0xf4,0x4c, + 0xcc,0x63,0x28,0x5c,0xab,0x9f,0xe2,0xe2,0x5b,0x34,0x06,0x77,0x7a,0xb9,0x5f,0xd0, + 0x67,0x79,0xd4,0xef,0x36,0x8a,0xf8,0xbc,0x63,0x84,0xd7,0x41,0xf5,0x48,0x74,0x8e, + 0x9e,0x14,0x64,0xdf,0x5c,0xcc,0x9b,0x64,0x79,0x0a,0x7a,0x77,0xf8,0x91,0xe4,0x0f, + 0xd0,0x95,0xf1,0x5e,0x21,0xde,0xd1,0x09,0x26,0x77,0x46,0xf3,0x71,0xf1,0x6d,0x7e, + 0x51,0xb9,0x35,0xb6,0xf1,0x49,0x0e,0xb5,0xf4,0xe3,0xc7,0xa2,0x0a,0x9f,0xfa,0x60, + 0xa3,0x64,0x1b,0xe0,0x71,0x79,0xa3,0x6f,0xd7,0x13,0xef,0x80,0x39,0xe1,0x29,0x01, + 0x9d,0x6f,0x6d,0x91,0xb7,0x68,0x40,0x96,0xb8,0x27,0x5e,0x2a,0x13,0xe1,0xc5,0x00, + 0x57,0xda,0xc5,0x90,0x13,0x4e,0xf8,0x9e,0x92,0xe9,0x16,0x10,0x5e,0x46,0x87,0xdf, + 0x8d,0x17,0xc3,0x2a,0x4c,0x9c,0x2f,0xa2,0xac,0xc7,0xc5,0x85,0x23,0x0b,0x53,0x03, + 0x8e,0xb6,0x05,0x95,0xdb,0xc0,0x81,0x95,0xd1,0x86,0x76,0x2a,0x9e,0x10,0x28,0x87, + 0x5d,0x2e,0x59,0x07,0x29,0x70,0x68,0xe9,0x09,0x95,0x8e,0x7e,0xd8,0xe8,0x42,0x4b, + 0xaf,0x2e,0x89,0xdb,0x3c,0xf4,0x73,0xbd,0x25,0x7d,0x1b,0xbb,0x48,0x64,0xec,0x48, + 0x6b,0xfd,0xfc,0x83,0x41,0xcd,0xbe,0xe2,0x77,0x83,0x78,0x0a,0x91,0x1d,0x5f,0xe1, + 0x73,0x31,0x51,0x1e,0x15,0x92,0x6c,0xff,0x3b,0x5c,0x48,0xde,0xa2,0x41,0xc7,0x7c, + 0x34,0x8d,0x67,0x9e,0x87,0xb5,0xed,0xe0,0x29,0x98,0xdb,0xd8,0xd0,0xaa,0x83,0x3c, + 0x54,0x0a,0x78,0x31,0xd4,0x73,0x3c,0x35,0xe0,0x57,0x49,0x9b,0xc1,0xb2,0x42,0x9d, + 0x59,0x3b,0xda,0x01,0x6e,0x2d,0xda,0xae,0xda,0x9d,0x9b,0x5a,0x8f,0xa1,0x06,0xde, + 0x3e,0x7a,0x0c,0x31,0x64,0xd7,0xea,0x23,0x6a,0xe5,0x4b,0x58,0x40,0xed,0xc4,0xb2, + 0xb9,0x95,0x70,0x80,0x22,0x34,0xbd,0x5e,0x92,0x92,0x93,0xa8,0x1a,0xf4,0xb1,0xc8, + 0x2f,0xd5,0x71,0x65,0x8d,0xb7,0x29,0x3e,0xc5,0x7a,0x42,0xc7,0x46,0xb6,0x81,0x90, + 0x1d,0xff,0x42,0x97,0xe9,0x70,0x0b,0x6d,0xfa,0x76,0x1c,0x0f,0x39,0xd2,0x45,0x75, + 0x93,0x96,0xe3,0x4a,0x3e,0x45,0xb8,0x81,0x3f,0x3f,0xb9,0x7e,0x84,0x9d,0xcc,0xe0, + 0xef,0xdf,0xde,0x38,0xdd,0xbd,0xc1,0xd6,0x49,0xfd,0x5b,0xc9,0xf7,0x65,0x18,0x7a, + 0x05,0x74,0xf8,0x75,0xd8,0x54,0x94,0x83,0xd2,0x43,0x7e,0x39,0x23,0x59,0x5c,0x6a, + 0xe5,0x35,0x58,0x5c,0xae,0x70,0x3b,0xcd,0x82,0x85,0x97,0x97,0x5c,0x44,0xf1,0xe6, + 0xf8,0x99,0xd9,0xda,0x57,0x25,0xe2,0xac,0x9f,0xec,0x2c,0xa6,0x20,0x79,0x35,0xdd, + 0xe6,0x2e,0x89,0xc8,0x1b,0x49,0xe4,0xfa,0x3e,0xa9,0x5e,0x99,0xb4,0x45,0xd7,0x15, + 0x41,0x34,0x41,0xfe,0x0d,0x62,0x79,0x58,0x52,0x5d,0x71,0x10,0x18,0x30,0x89,0xef, + 0x6d,0x54,0x39,0x81,0x88,0x4c,0xad,0xff,0x89,0x65,0xdc,0x50,0x97,0xf1,0x8c,0xa2, + 0x50,0xe2,0x3a,0xc6,0x8b,0x60,0xe5,0x0d,0x5f,0xb9,0x11,0x39,0xf0,0xae,0x04,0xe8, + 0xe1,0xab,0xab,0xb1,0x73,0x78,0x6e,0x8f,0x5f,0xed,0xe0,0x8f,0xec,0x76,0x9b,0x24, + 0xac,0x79,0x99,0xcd,0x05,0xa2,0x3a,0x17,0xe3,0x04,0x27,0x4f,0x80,0x65,0xc5,0x4b, + 0x5c,0x77,0x05,0x2d,0x96,0x8b,0xbd,0x49,0x26,0xa2,0x8c,0xe3,0x25,0x73,0x0f,0xef, + 0xad,0x29,0x4d,0x73,0xc8,0xd4,0x39,0xcc,0xcc,0x8b,0xf0,0x8e,0x2d,0xac,0x35,0x19, + 0xf0,0xf1,0x96,0x2d,0x88,0x2d,0x7c,0x97,0xc0,0xcd,0x9a,0xad,0x25,0x42,0xca,0x85, + 0xcf,0x1d,0x11,0x35,0x55,0x55,0xc5,0xf9,0xed,0x47,0xc6,0x05,0xf9,0x81,0xeb,0x91, + 0x25,0xb4,0x29,0x6e,0xe4,0xf8,0xf0,0x51,0xa2,0x52,0x11,0xcf,0x95,0x2d,0x85,0xab, + 0x14,0xa7,0xc7,0xbe,0x2f,0x2e,0x5c,0xc3,0xc7,0x6a,0xae,0x3d,0xcf,0x47,0x54,0xe2, + 0xd1,0x20,0xb9,0x17,0x2e,0xea,0x0a,0xc9,0x6c,0xe5,0x1e,0xcd,0xdf,0x07,0xcb,0x37, + 0x98,0xaa,0x6f,0x81,0x4e,0xe0,0xe2,0x20,0xf1,0x70,0x4f,0xa8,0x0a,0x22,0x1e,0x2d, + 0x86,0x64,0x18,0xdf,0x15,0xc2,0x49,0x26,0xa2,0x04,0xbb,0xc9,0x01,0xb2,0xc6,0x8b, + 0x32,0x3d,0x17,0xaf,0xa6,0x71,0x44,0x87,0xf1,0x5d,0x56,0x93,0x61,0x58,0x52,0x20, + 0xd7,0x80,0xe3,0x5f,0xa1,0x66,0xa4,0xf8,0x93,0x22,0x88,0x03,0x25,0xf0,0x27,0x45, + 0x25,0xf0,0xbf,0xa7,0x5f,0x0a,0x98,0x4a,0xfd,0x42,0x9f,0x27,0xf8,0x91,0x75,0x59, + 0xe6,0x8f,0xd9,0x9b,0x6d,0x12,0xf6,0xde,0x35,0xf2,0xc1,0xd0,0xf7,0x52,0xa9,0xb9, + 0x8d,0x17,0xc9,0x9d,0x04,0x35,0xd5,0x6b,0xbc,0x4f,0x9d,0xb1,0x4f,0x32,0x04,0x94, + 0xb0,0x96,0x3c,0x90,0xeb,0x34,0xa3,0x1a,0xea,0x8a,0xaf,0x8f,0x09,0x1a,0x49,0x3f, + 0xeb,0x48,0xb0,0x78,0xf4,0x8b,0x8b,0xb9,0xb7,0xf4,0x3a,0x8b,0xc4,0x85,0x8a,0x82, + 0xb3,0x8b,0x0a,0x4e,0xf9,0x19,0x42,0x11,0x06,0xba,0x68,0x81,0x56,0x42,0x28,0x55, + 0x1f,0x1e,0xa3,0xb0,0xa7,0xe8,0xf0,0xeb,0x56,0x63,0xc5,0x52,0xdc,0xe8,0xd0,0xaf, + 0x91,0x62,0xf6,0x2a,0x2f,0x17,0xbd,0x1c,0x16,0xc2,0xd9,0xf7,0xca,0xf1,0xcb,0xa7, + 0x97,0x06,0x0e,0xce,0xf7,0x80,0x00,0x46,0x14,0x80,0x44,0x9a,0x45,0x5b,0x21,0x99, + 0x49,0x4f,0x50,0xb6,0xf7,0x31,0xc5,0x90,0x71,0xab,0x80,0x5b,0xe0,0x21,0x2c,0x1d, + 0xeb,0x52,0x4c,0x54,0x74,0x34,0xb4,0x5e,0x8d,0x63,0xc9,0xa1,0x6a,0xaf,0xab,0xd7, + 0x08,0x57,0xef,0xa6,0x9a,0x9d,0x5c,0xb9,0x8e,0x09,0xfb,0x5b,0xc6,0xd4,0xc2,0xbb, + 0xb5,0xbf,0x88,0x08,0xa2,0xef,0x10,0x12,0x81,0x4b,0x36,0x43,0x50,0x54,0xd1,0x8e, + 0x98,0x82,0xd2,0x2c,0x4c,0x5b,0x68,0x34,0xa4,0xa0,0x03,0x62,0xa5,0x61,0x0e,0x34, + 0x11,0x0a,0xb0,0x7b,0x66,0x4f,0x01,0xa5,0xd0,0x24,0x75,0x32,0x8b,0x43,0x0a,0xc7, + 0xcc,0xa3,0x65,0xdf,0x71,0x2b,0x2f,0xfe,0x63,0x88,0xc4,0x16,0x68,0x61,0x75,0xd4, + 0x2f,0x64,0x40,0x5a,0x5a,0xf4,0x45,0xec,0x83,0x20,0x92,0xa6,0xd1,0x60,0x67,0xa7, + 0xfb,0xb2,0x67,0x75,0xf7,0x0f,0xac,0x5d,0xab,0x4b,0x64,0x93,0x5b,0xdb,0x09,0xfd, + 0xba,0x08,0xc4,0xd5,0x83,0x07,0x7c,0xd3,0x5a,0x2f,0x4d,0x86,0x4f,0x0f,0xb3,0x11, + 0x6e,0x25,0x22,0xc4,0xc2,0x22,0x12,0xd1,0x75,0x01,0x06,0x99,0x81,0xe1,0xbf,0xd4, + 0x18,0xc1,0x7c,0x7d,0xd2,0x4b,0x30,0x48,0x19,0xba,0x9c,0x78,0xf2,0xfa,0x5a,0x6e, + 0xf8,0x73,0x45,0x88,0xee,0xcc,0x44,0x28,0x96,0x52,0xe0,0x94,0x29,0x14,0x6e,0x0f, + 0xa3,0xa7,0xc4,0xd7,0x9e,0x88,0xe5,0x0a,0x3a,0x33,0x28,0x03,0x18,0x40,0x7b,0x72, + 0x95,0x3b,0xa1,0xac,0x1d,0xe8,0xa0,0xd3,0x18,0xe8,0xc0,0x09,0x27,0x0b,0x8a,0xfd, + 0x7a,0xe9,0xa6,0x6f,0x7c,0x17,0x7f,0xfe,0x70,0xf7,0xce,0x69,0x6d,0x89,0xdd,0xb5, + 0x65,0x58,0x04,0xc1,0xf7,0x40,0x2e,0x2c,0xbc,0x05,0x0a,0xac,0x60,0x0b,0xc5,0xce, + 0xad,0x35,0x23,0x23,0xc0,0xa2,0x8e,0x29,0x6a,0x44,0x16,0x11,0xa1,0x89,0x02,0x14, + 0x36,0x37,0xab,0xfb,0xf9,0xf6,0xae,0x48,0xd9,0x5e,0x1e,0x6c,0x82,0xb7,0x7b,0x7f, + 0x37,0x7f,0xe9,0xaf,0xbf,0xcb,0x9e,0x1a,0x82,0xd2,0x97,0x37,0x3c,0x45,0x7e,0xd0, + 0xe8,0x29,0xca,0x42,0x6f,0x22,0x76,0x08,0xeb,0xba,0x85,0xc0,0xef,0xb4,0xd1,0x23, + 0xb5,0xec,0x3c,0xb9,0xcc,0x06,0x50,0x13,0x9a,0xad,0x40,0x84,0x74,0x31,0xf5,0xa8, + 0x2a,0xfb,0x8b,0xd6,0x30,0xe6,0x56,0x13,0x72,0x7e,0xac,0x86,0x0f,0x19,0xe0,0x16, + 0x87,0xf5,0x2c,0xb4,0x80,0xb2,0xe9,0x95,0x9e,0xaf,0x71,0x65,0x41,0x88,0x1e,0x96, + 0x9e,0x08,0xc5,0xa1,0xd9,0xd9,0xf0,0xea,0x87,0xa0,0xbc,0x70,0xd1,0xdb,0xaf,0x69, + 0x42,0x1d,0xc6,0x24,0x5c,0xb0,0x83,0x71,0x75,0xa9,0x01,0x85,0xbd,0x28,0x3d,0xdc, + 0xd0,0x31,0x28,0xb2,0x70,0xf2,0x1a,0x6e,0x00,0xd4,0xb4,0xb3,0x37,0x1f,0xcf,0xdf, + 0x7d,0x7c,0xf3,0x7e,0xa4,0x7f,0x2f,0xfe,0x27,0x32,0x92,0x74,0xb4,0x44,0xc7,0xb1, + 0x81,0xae,0x9b,0x74,0x21,0xd9,0x19,0x10,0xb6,0x99,0x33,0x3b,0xc1,0x78,0x32,0xf9, + 0xd7,0x89,0xef,0x89,0x0f,0xb4,0xe5,0x7c,0x4e,0xae,0xf6,0x77,0xc5,0xb7,0xb4,0x8f, + 0x9e,0x71,0x30,0xa2,0xac,0x89,0xc0,0x75,0x9d,0x44,0x9a,0x1d,0x45,0x1a,0xf9,0xa4, + 0xca,0xe0,0x0a,0x22,0x2d,0x91,0xf1,0xcf,0x94,0x6f,0xa5,0x6f,0x10,0xcf,0x93,0x41, + 0xc7,0x9c,0x4c,0x2f,0x07,0xc1,0xc2,0xf7,0x4d,0xf4,0xb5,0x1a,0x2c,0x1f,0x4c,0xc7, + 0x8b,0xd3,0x3b,0xfc,0xc1,0x51,0x22,0x93,0xc1,0xc5,0x57,0x33,0x20,0xa5,0x17,0x4a, + 0x93,0xb6,0x8c,0xe7,0x55,0x31,0x7c,0xa0,0xb4,0x3a,0x58,0xa2,0x1e,0x4f,0x65,0x50, + 0x0f,0x87,0x1f,0x0f,0x26,0xb2,0xe9,0x73,0x58,0x09,0x37,0xc5,0xe9,0xd3,0x97,0xa8, + 0x81,0xbf,0xdf,0x44,0xe1,0x64,0x86,0x1d,0x53,0x30,0x69,0xf9,0x25,0x22,0xab,0x40, + 0x3e,0xd2,0xde,0x6c,0xae,0x5c,0xe8,0x7d,0x68,0x3b,0x27,0x76,0x04,0x9b,0xd6,0xe5, + 0xb1,0x12,0xa8,0x04,0x04,0xd0,0xe7,0x9f,0xd4,0x30,0x59,0xe9,0x61,0xb8,0x31,0x5d, + 0x04,0x7c,0x6e,0xf1,0x5d,0x2b,0x31,0x96,0x62,0xbb,0x67,0x14,0x03,0xa4,0xe1,0xf8, + 0x8e,0xed,0x7a,0x61,0x0c,0x05,0x1e,0x94,0xf2,0x6a,0x85,0xe3,0x38,0xb6,0xef,0x40, + 0x74,0x09,0xd3,0x10,0x05,0x1c,0x2b,0xf1,0x91,0xec,0xa3,0x3d,0xb1,0x55,0xdf,0x16, + 0xca,0xad,0x89,0xa1,0xb6,0x47,0x12,0x41,0x6b,0x6e,0x2c,0x11,0x29,0xd2,0xd1,0x77, + 0x2d,0xfd,0x39,0x0b,0x09,0xc6,0x30,0xb5,0x90,0xf4,0x9d,0xf0,0xfb,0x68,0xa3,0x39, + 0x7c,0xe7,0xf4,0x0a,0x76,0x4b,0x8b,0x74,0x64,0x28,0x47,0x9a,0x25,0x02,0x10,0xed, + 0x4d,0xa9,0xf5,0x0d,0x1f,0x91,0x81,0x7f,0x47,0xb0,0x36,0x32,0x55,0x76,0xd7,0x32, + 0x96,0x69,0x95,0xea,0x89,0x86,0x1e,0xcc,0xde,0x7e,0xa7,0xa3,0x0e,0x0e,0xe4,0x3b, + 0x65,0xb6,0xe8,0x51,0x18,0x5c,0x42,0x02,0x3e,0xc4,0x86,0x4a,0x58,0x6b,0xe7,0x62, + 0xf3,0xd5,0xa1,0xfe,0x75,0xe7,0xd2,0xcc,0x3a,0x98,0xc8,0xe2,0x4b,0x7d,0x53,0x1f, + 0xe8,0x74,0x52,0xab,0x9b,0xfa,0x2b,0xfc,0xed,0xa7,0xf8,0xf3,0x10,0x7f,0x62,0xf8, + 0x0f,0x73,0x4b,0xdf,0x82,0x9f,0xbf,0x2f,0x42,0xf8,0x78,0xb8,0x98,0x7c,0x7d,0x28, + 0x02,0xa6,0x62,0x40,0x07,0x81,0xd2,0x58,0xd2,0xee,0x21,0x0d,0x74,0xd4,0x44,0xe1, + 0xa1,0x1c,0x26,0x1d,0xa7,0x30,0x60,0x10,0x14,0x61,0x82,0x05,0x9b,0xbd,0x6e,0x18, + 0xc3,0x0d,0x6f,0xda,0x7a,0x46,0xad,0x18,0x3c,0x5c,0xb1,0x2b,0x01,0x10,0x23,0x4a, + 0xb6,0x48,0x62,0x1d,0x29,0x87,0x10,0x50,0x27,0xcf,0xc0,0x82,0x47,0xac,0xfc,0x0e, + 0xd4,0x22,0xd8,0xb5,0xba,0x6a,0x5c,0xee,0x27,0x24,0x8a,0x03,0x1d,0x2d,0xff,0xa2, + 0x4c,0x52,0x1d,0x9e,0x38,0x67,0x80,0xfd,0xc0,0x6d,0xa3,0x84,0x3a,0x10,0x6a,0xb0, + 0xd1,0x58,0x8b,0xb4,0x0b,0xdd,0x6c,0x55,0x3b,0x32,0xb6,0x75,0xd6,0x36,0xb2,0xe1, + 0x19,0x72,0x0a,0xf4,0xf4,0x42,0x0b,0x3e,0x15,0x78,0x43,0x03,0x71,0xfa,0x0f,0x37, + 0x6e,0x09,0x10,0x4f,0x6f,0x46,0x80,0x21,0xd3,0x9b,0xfb,0x7b,0xd8,0xa2,0xf3,0xd1, + 0xce,0x3f,0x5b,0xd7,0x47,0xbf,0x39,0xdb,0xbf,0x59,0xf2,0x9f,0xd6,0xd1,0x80,0xfe, + 0x1a,0x47,0xc6,0x8e,0xe5,0xde,0xba,0x93,0xd6,0xf4,0xc6,0x10,0x60,0x1c,0xcd,0x8f, + 0xe6,0x17,0xdd,0xaf,0x83,0x16,0xd5,0x5f,0x04,0x57,0x01,0x06,0xf8,0x45,0x83,0x19, + 0xea,0x45,0x0c,0xfe,0x9d,0x36,0x08,0x21,0xad,0xf6,0xfd,0x77,0x50,0x1d,0x23,0x4e, + 0x61,0x75,0x23,0xd9,0x1e,0xe9,0x98,0xae,0x0f,0x35,0xe5,0x7f,0x3b,0x3b,0xda,0xa7, + 0xf3,0xe3,0x6f,0x27,0x3f,0x1d,0x7f,0x04,0x5a,0xfa,0xed,0xfc,0xf8,0xc7,0xd1,0xd8, + 0x4d,0x6d,0x2c,0xb8,0x41,0xde,0xfa,0xd4,0x1c,0x26,0xd5,0xb6,0x87,0x19,0xa2,0x41, + 0x68,0xc9,0xd6,0xa8,0x2e,0x39,0xd6,0x09,0xab,0xbc,0x89,0xaf,0x31,0xa0,0x2e,0xb9, + 0x21,0x50,0x1d,0x66,0x3e,0x5e,0x78,0xbe,0x73,0x94,0x00,0x10,0x5b,0xfa,0xb6,0xfc, + 0xde,0xd6,0x0d,0x7d,0x90,0x14,0xe0,0x66,0x47,0x5e,0x0b,0x23,0xe7,0x99,0x61,0x94, + 0xc2,0x5e,0xd9,0xc0,0x3f,0x23,0xfc,0xe7,0xfe,0x7e,0xf9,0xc0,0x78,0x86,0x5f,0x40, + 0x15,0x26,0x33,0xd7,0xc8,0x7f,0xa2,0xe0,0xd6,0xa6,0x88,0x2c,0x30,0x34,0x18,0x96, + 0xf7,0xe9,0x4c,0xa3,0x8c,0x04,0x2d,0x1c,0xc0,0xa3,0x7e,0x3a,0x3f,0xff,0xac,0x1d, + 0x7f,0x7e,0xa7,0xfd,0xf8,0xe6,0x3c,0xd1,0xec,0x49,0x1c,0x52,0x64,0x92,0x04,0x41, + 0x98,0x60,0xbb,0xd4,0x56,0xca,0x3b,0x7c,0x73,0x53,0x48,0xc8,0xc7,0x63,0x58,0xc6, + 0x13,0xc6,0x74,0xdf,0x8d,0xc5,0x62,0x4e,0x52,0x7f,0x84,0x27,0xaa,0xa5,0x5c,0x40, + 0x01,0x6a,0x04,0xc3,0xa5,0xda,0xfe,0x08,0x4a,0x89,0x9f,0xc3,0x8d,0x7a,0xe2,0x81, + 0x25,0x6c,0x6c,0xa3,0x05,0xd4,0x42,0xed,0x9f,0x70,0x49,0x4a,0x4d,0x6e,0x3a,0x99, + 0x29,0x30,0xb1,0x30,0xdc,0x46,0xde,0x0a,0x8e,0x09,0x46,0x1f,0x0b,0x57,0x3f,0xd8, + 0x63,0xbb,0x9d,0xae,0xb1,0x44,0x04,0x7e,0x8f,0x2f,0x75,0xc0,0xa0,0xd2,0x19,0xde, + 0x8a,0xc2,0x01,0xbf,0x89,0x63,0xa0,0xc0,0x3a,0x72,0x48,0x20,0x50,0xb2,0x87,0xd8, + 0xfa,0x57,0x82,0xe3,0x01,0x48,0x62,0x57,0xca,0x00,0xb9,0xe5,0xf0,0xca,0xa8,0x34, + 0xb1,0x08,0xd0,0x5f,0x9a,0x1c,0x5a,0x90,0x7c,0xdd,0xf1,0xd1,0xb2,0x3c,0x96,0x46, + 0x9c,0x14,0x8d,0xe3,0xaa,0x3d,0x94,0x07,0xfd,0x2f,0x6e,0xfa,0x19,0xb6,0xbd,0xb9, + 0x29,0xc7,0xfe,0x6c,0x34,0xea,0x75,0x7a,0x02,0xc6,0xee,0x28,0xef,0xed,0x5f,0xf8, + 0x1a,0x65,0x18,0xdf,0xdf,0xb7,0x74,0x5a,0x46,0x7d,0x5b,0x56,0x01,0xda,0xe3,0xca, + 0x99,0xcb,0x34,0x48,0x89,0xdd,0xdf,0x41,0xd4,0xf8,0x17,0xff,0x85,0xef,0x2b,0xf7, + 0x0e,0xbe,0xe0,0x5f,0x01,0x0b,0x57,0x81,0xef,0xbf,0x70,0x7c,0xe2,0xbf,0x1c,0x0f, + 0xa3,0x10,0x50,0x9e,0x80,0x8e,0xcf,0x2c,0x65,0x44,0x3b,0x43,0xcf,0xe5,0xdc,0x05, + 0x85,0xc7,0x19,0xe8,0x9f,0x3f,0x9d,0x9d,0xeb,0x26,0xbf,0x7f,0x93,0x0c,0x96,0xba, + 0x20,0x55,0xed,0x73,0xa0,0x6b,0x40,0x3b,0x30,0x64,0x86,0x08,0x9a,0xb9,0x83,0x50, + 0xd6,0x1f,0xa8,0xc1,0xc1,0x7f,0x9e,0x7d,0xfa,0x68,0x25,0xc4,0x02,0xbc,0xe9,0x5d, + 0x8b,0x3a,0x29,0x10,0xec,0xf9,0xd5,0xa9,0xfb,0x3b,0x50,0x5f,0x01,0x0e,0x9b,0xc0, + 0xf1,0xc5,0x0b,0xd2,0x03,0x62,0x93,0xad,0x03,0xde,0xf6,0x02,0x4f,0x27,0xf1,0x5d, + 0x94,0x86,0x9b,0x9b,0xfc,0x17,0xc9,0xf5,0x29,0xc5,0x2e,0xfa,0x07,0xdd,0x60,0x31, + 0xea,0x93,0x5b,0x36,0xb4,0x41,0x1b,0x7e,0x0a,0x40,0x26,0x46,0x30,0xea,0x0c,0xbd, + 0x57,0x07,0x43,0x6f,0x7b,0xdb,0xb0,0x2f,0xbc,0xaf,0xa3,0x0f,0x30,0x57,0x8b,0xce, + 0x04,0x5a,0xf4,0x93,0x23,0x22,0xb5,0x8c,0xef,0x7b,0x7b,0xfb,0xf9,0x1a,0x97,0x19, + 0xf7,0xdc,0x8e,0x98,0x6d,0xdb,0x39,0x27,0x1b,0xc3,0x44,0xb8,0x78,0x6b,0xfc,0xaa, + 0xbb,0x7f,0xa4,0x77,0x00,0x3a,0x40,0x55,0xc7,0x56,0x1a,0x0a,0x56,0xd8,0xdd,0xa7, + 0x75,0xb0,0x30,0xca,0x7a,0x4b,0xd7,0x8d,0x12,0x61,0x00,0x2c,0x7b,0xeb,0xda,0x28, + 0x94,0x24,0x08,0x15,0x10,0x1d,0xb6,0x2e,0xe4,0x49,0xde,0x57,0x50,0x3f,0x60,0x12, + 0x6f,0x6c,0x15,0x7f,0x5d,0x1f,0x8a,0xb9,0xbe,0xc2,0xa1,0x99,0x0b,0xb6,0x58,0xac, + 0x36,0x9f,0xb5,0x20,0x09,0xc5,0xb2,0xcd,0x8f,0x74,0x5a,0x0a,0x15,0x2c,0x6c,0x10, + 0x36,0x2b,0x26,0x1b,0x86,0x40,0x0b,0xa2,0xdf,0x78,0x65,0xe0,0x04,0x44,0x26,0x92, + 0x29,0x2a,0x57,0x92,0x78,0x31,0xb2,0x42,0x46,0xf6,0x6b,0x8d,0xce,0x5b,0xdd,0xde, + 0xc1,0x3d,0xc2,0x13,0xfb,0x83,0x59,0xe9,0x56,0x31,0x3c,0x4f,0xc3,0xcc,0x56,0x4d, + 0x2c,0x49,0xad,0x8a,0x34,0x6b,0x3c,0x70,0xf3,0x02,0x68,0xea,0xf1,0x7f,0x23,0xf4, + 0xa0,0x0f,0xd0,0x50,0xde,0xb3,0x1f,0x00,0x34,0x9a,0x89,0xcc,0x47,0x20,0x35,0xef, + 0xf7,0x8b,0x2d,0x16,0x8e,0xcd,0x57,0x2e,0x48,0x81,0xa5,0x2b,0xad,0x6e,0x1c,0x69, + 0xfa,0xdf,0x7c,0xdc,0xae,0x6f,0x0c,0xd6,0x6d,0xd3,0xd2,0x79,0xb9,0x71,0x81,0x8b, + 0x51,0x8e,0x8d,0x95,0x90,0x2e,0xe8,0x02,0x42,0x16,0x82,0x64,0xd6,0x35,0x24,0xc7, + 0xf0,0xbd,0x73,0x7b,0x0c,0xb8,0xb3,0xf5,0x1c,0xc3,0xf4,0x89,0x37,0xed,0x2e,0xd4, + 0x20,0x78,0x00,0xb1,0x21,0x54,0xe5,0x92,0x06,0xff,0x91,0x22,0xa5,0x18,0x15,0x9f, + 0x57,0x19,0x65,0xc1,0x95,0x86,0x42,0xbb,0x05,0xea,0x73,0xcf,0xa8,0x77,0x14,0x44, + 0x31,0x3c,0x7b,0x5b,0x35,0x02,0xba,0x86,0x22,0x86,0x20,0xca,0x1a,0xe2,0x6f,0x65, + 0x10,0x54,0xb6,0x71,0x14,0x0c,0xbe,0xfe,0xea,0x02,0xf4,0xa8,0xd1,0xca,0x12,0xe5, + 0xc3,0xc2,0x47,0xfa,0x53,0x5e,0x1f,0x32,0x0a,0xf8,0xa5,0x3f,0xe5,0x2d,0xa2,0x44, + 0xbc,0x7d,0xb6,0x10,0x4f,0x8e,0x93,0xe7,0x15,0x54,0xcb,0xc3,0x69,0x86,0xc2,0xb2, + 0xf7,0xfe,0xf8,0x23,0xe2,0x8b,0xe8,0x3c,0x7f,0x7c,0xa1,0xd4,0x39,0x3f,0xc5,0x00, + 0x1d,0xf2,0x63,0x03,0x81,0x78,0x87,0x20,0xbf,0x3d,0xa0,0x97,0xf0,0x8d,0x62,0x5e, + 0x97,0x1a,0xe1,0x90,0xa4,0x4a,0x49,0x35,0x80,0xa9,0x61,0x79,0x30,0xbf,0xf8,0xa7, + 0xf3,0x0f,0xa0,0x15,0x97,0xe3,0x57,0x57,0x82,0x99,0x56,0x1a,0xa1,0x00,0x9e,0x86, + 0x25,0xcd,0x3c,0x0a,0xef,0x17,0xf1,0x61,0x1f,0x0a,0x54,0x98,0x4f,0xf9,0x97,0x1b, + 0xc8,0x07,0xf5,0x1d,0xf8,0x77,0x47,0xdc,0x30,0x28,0x73,0x78,0x94,0xdd,0x60,0xa5, + 0x50,0x27,0x1f,0x25,0xf4,0x67,0x88,0x0b,0x47,0xaa,0x39,0x24,0xe0,0x8f,0x61,0x8e, + 0xaa,0xa3,0x67,0xcf,0xa0,0x10,0xfc,0x18,0x66,0x1b,0x87,0x92,0x60,0x50,0xc3,0x0d, + 0x95,0x42,0x50,0x2a,0x7e,0x7d,0x8b,0xf0,0x93,0x32,0x2b,0x94,0x8e,0x0a,0xc9,0xd4, + 0x6f,0x89,0x4c,0xc6,0xb6,0x0b,0xba,0x3c,0x95,0xa3,0x94,0x6f,0xb2,0x34,0x35,0x58, + 0xd8,0xd0,0x54,0x88,0x52,0xbe,0xc9,0x5b,0x2f,0x54,0x88,0xea,0x9d,0xa1,0x85,0x4e, + 0x69,0x86,0x2c,0x76,0x43,0x41,0xd8,0x47,0x28,0x9a,0x46,0xf6,0xd8,0xf3,0xbd,0xd4, + 0x73,0x41,0x80,0xed,0x70,0x45,0xd2,0xed,0x47,0xf9,0xe4,0x8f,0x5a,0x00,0x0f,0x0c, + 0xa0,0xe2,0x7e,0xa3,0xac,0xfb,0x7b,0xe8,0x10,0xe3,0x5a,0xcd,0xb3,0x84,0x8e,0x31, + 0xe8,0x10,0x61,0x49,0x90,0x1e,0x7f,0x9b,0xcc,0x9d,0xe4,0xb0,0x63,0x9c,0xbc,0x7f, + 0xf7,0xed,0xc3,0xf1,0xaf,0xa3,0x3c,0x91,0x3a,0x40,0x55,0x43,0x68,0x1a,0x43,0x29, + 0x69,0x43,0x0a,0xfd,0xfd,0x06,0xfb,0xdd,0x95,0x39,0x74,0xba,0x92,0xd0,0x9f,0xac, + 0x30,0xfa,0xe6,0x63,0x61,0xfc,0x4b,0x89,0x84,0x2f,0xe2,0x21,0xc4,0x22,0x5e,0x26, + 0x14,0xb2,0x12,0x0a,0xc9,0x98,0x94,0x59,0x61,0x7c,0x16,0xb1,0x5c,0x16,0x7b,0x01, + 0xe9,0xff,0x7b,0x10,0xde,0x72,0xdd,0x48,0x26,0x70,0x7f,0x4c,0xa9,0xc6,0x23,0x6e, + 0x84,0xdf,0x45,0x34,0x86,0xe3,0x1a,0x0d,0x5b,0xee,0x7d,0x86,0x08,0xe2,0x18,0xa8, + 0x96,0x7c,0x30,0x6e,0x2c,0xc7,0xa5,0x2d,0xf8,0xe6,0xfc,0xcb,0x67,0xbd,0xd0,0x0c, + 0xab,0xfb,0x5c,0xfc,0x01,0x05,0xa0,0x72,0x1d,0xd8,0xdd,0xfa,0x83,0x98,0x8c,0x7c, + 0xf4,0xb0,0x91,0x00,0x95,0x24,0x93,0xa1,0xa2,0xf5,0xc8,0x15,0xce,0xb7,0x8b,0x30, + 0xf2,0xe8,0x35,0xc2,0xb6,0x50,0xf4,0x73,0x33,0xd0,0xc3,0x83,0x31,0x50,0x3f,0x6b, + 0x04,0xe9,0x88,0xb7,0x99,0x28,0x34,0x8a,0xe4,0xaf,0xfb,0xfb,0x8b,0xaf,0x43,0xc1, + 0x0e,0xca,0xf0,0x51,0x7d,0x01,0x1e,0x32,0x85,0xef,0x59,0xb6,0x3d,0x0b,0xca,0x03, + 0x17,0x58,0xe6,0x61,0x6e,0x1f,0x70,0x10,0xa5,0xb1,0xbb,0x2c,0xce,0xbb,0x96,0xb8, + 0xde,0x07,0x82,0xbc,0xd0,0x31,0x96,0x4d,0x08,0xa1,0x2b,0xce,0xae,0x53,0x20,0xae, + 0xae,0xa3,0xb5,0xe9,0xbd,0xb1,0x3b,0x8c,0xe5,0x32,0x54,0xf4,0x25,0x8a,0xc6,0xd9, + 0xeb,0x90,0x29,0xe5,0xa1,0xa2,0x64,0xdf,0xb4,0xae,0x8d,0xe5,0x85,0xfe,0x5c,0x3e, + 0x32,0x69,0xe2,0x4f,0xf1,0xce,0x20,0xfd,0xc6,0xf0,0xb9,0x5f,0xab,0xa2,0x88,0xe7, + 0xe0,0xd8,0xe0,0xdf,0xfa,0x55,0x85,0x8e,0xbe,0x83,0x96,0x57,0xa0,0x5e,0x66,0x2d, + 0x41,0xd1,0xbd,0xa6,0x1c,0x30,0x59,0xe6,0xd6,0x43,0xd6,0x93,0x63,0xb7,0x6d,0xc7, + 0x73,0xbc,0x26,0x7a,0x47,0xd4,0x1f,0xf2,0x35,0xa2,0xb9,0x68,0xc7,0x67,0x86,0x80, + 0x4f,0x4d,0x7a,0x6c,0xc5,0xa7,0x47,0x0c,0x91,0x77,0x6c,0x2c,0x22,0xdc,0xb2,0x78, + 0xa2,0xfa,0x03,0x7a,0x3e,0x94,0x66,0x2f,0x56,0x89,0x56,0xac,0x95,0x43,0xc1,0x60, + 0xe4,0x55,0x5e,0xa8,0x34,0x70,0x76,0x6f,0xf0,0x4c,0xf0,0x3d,0x05,0x5d,0x80,0xdd, + 0x27,0xdf,0x82,0xcc,0x65,0x74,0xf7,0x1a,0xe5,0xb3,0xeb,0xca,0xe9,0xa1,0xd8,0x98, + 0x69,0x30,0xca,0x5b,0xc5,0xc3,0x5f,0xd8,0x9c,0x69,0x60,0xc9,0x87,0x79,0x47,0x68, + 0x63,0x19,0xe6,0x25,0x30,0xde,0x72,0x69,0xd1,0x81,0x42,0xb0,0x3a,0xcb,0x9b,0x41, + 0x2c,0xd9,0x5f,0xd0,0xa5,0x36,0xea,0x94,0xa9,0xa5,0xa4,0xe6,0x83,0x7c,0x30,0x28, + 0xe6,0x1a,0x16,0xf9,0xd3,0x81,0x9a,0x65,0x6c,0x54,0xb5,0xe8,0xb2,0x32,0x5c,0xd1, + 0x58,0xc5,0xfe,0x4c,0x06,0x52,0xd1,0x34,0xff,0x35,0xf8,0xd7,0x43,0x5d,0x6b,0xb7, + 0x00,0xc6,0x02,0x64,0xc8,0xec,0x44,0xfb,0xf1,0xd6,0x42,0x15,0x1d,0xd0,0x19,0xd6, + 0x2c,0xe3,0x87,0x25,0xc0,0x29,0x63,0x45,0x90,0xa9,0x7b,0x8f,0x76,0xeb,0x2a,0x10, + 0xdf,0x5a,0x99,0xb2,0xcc,0x2f,0x75,0x8a,0xdd,0x45,0xb2,0x6d,0x95,0xe6,0xd4,0x8c, + 0x72,0xe5,0x02,0x2a,0xbb,0x96,0x7a,0xd1,0xa5,0xea,0x9c,0x61,0x65,0xee,0xaa,0xb7, + 0x24,0x1d,0x3a,0x5b,0x69,0x74,0xbe,0x31,0x97,0x15,0x0a,0xa6,0xc2,0x81,0x07,0xa0, + 0x52,0x9f,0x9a,0x21,0x17,0xb4,0xe4,0xc9,0xf4,0x12,0x74,0xd9,0xd6,0x95,0xb1,0xc4, + 0x3d,0x06,0x7a,0x27,0xe8,0x05,0xff,0x1b,0x88,0xc7,0xff,0x26,0x85,0x20,0x15,0x32, + 0x9d,0x08,0x2b,0xca,0xd1,0x24,0x19,0x4f,0x4c,0x11,0xb6,0x06,0x58,0xf5,0xf4,0x92, + 0x45,0xf4,0x11,0x7f,0x98,0x73,0x33,0x1e,0x4d,0x98,0xe5,0x9b,0xbf,0xc3,0x2f,0x94, + 0x4b,0xee,0xef,0x97,0x6c,0x92,0x47,0x7b,0xfb,0x0d,0x24,0xa2,0x0c,0x42,0x0b,0xda, + 0x9a,0x8f,0xae,0x2c,0xf2,0x5d,0x6d,0xed,0xfc,0x13,0x8b,0xb6,0x2e,0xba,0xed,0x97, + 0x5f,0x8d,0xdf,0xac,0xd6,0x6f,0x37,0xdb,0xc6,0x77,0x3b,0xa0,0xd6,0x2d,0xd9,0x8a, + 0xd7,0xfa,0xdd,0x12,0xfc,0xfc,0xe2,0xab,0x71,0xb1,0x8d,0x26,0xbd,0x76,0xf7,0x2b, + 0x19,0xb6,0xb0,0xc0,0xf5,0x28,0xb9,0x98,0x5f,0xf4,0xbe,0x7e,0x95,0xe7,0x65,0xd7, + 0xa3,0x11,0x5a,0xdf,0x8f,0x74,0x7d,0x20,0x34,0xe4,0x6b,0x98,0x3b,0xdf,0xbf,0xc4, + 0x29,0x6f,0xe0,0xbd,0x63,0x0e,0x5b,0x3d,0xc8,0xb0,0x17,0x3f,0x87,0x94,0x51,0x0a, + 0x2d,0x9d,0x17,0xc9,0x32,0xbe,0x09,0x06,0x0e,0xc8,0x51,0xaa,0x81,0x71,0x97,0xeb, + 0x2a,0x40,0x7a,0x6d,0x79,0x19,0x60,0xb8,0xae,0x8e,0xc8,0x3b,0xc2,0x7b,0x6e,0x03, + 0xf2,0x4c,0x12,0xd5,0x31,0x2c,0xee,0xa0,0x68,0x0d,0x8f,0x2d,0x48,0x34,0x78,0xfc, + 0x18,0xda,0xb6,0x9a,0x1d,0x06,0x86,0xa8,0x9e,0xde,0x56,0xb3,0xd3,0x5b,0x51,0xd9, + 0x9e,0x56,0x33,0xed,0xa9,0xac,0x2a,0xe3,0xf9,0x55,0x8a,0x88,0x0c,0xd1,0x48,0xda, + 0x54,0x2c,0x95,0xc5,0xb8,0x39,0x8c,0x57,0x97,0xcf,0x1c,0xbe,0xd4,0xb9,0x72,0x87, + 0x6a,0xa0,0xb8,0xbc,0x28,0x27,0x54,0x21,0x53,0x09,0xcf,0x96,0x57,0x81,0xc4,0x6f, + 0xab,0xab,0x51,0x40,0xa8,0xac,0x02,0x7c,0x9c,0xd0,0x26,0x59,0xb8,0x40,0xe5,0x44, + 0x41,0x35,0x6e,0x5a,0xde,0xb4,0x92,0x5a,0xd3,0x36,0xc7,0xd0,0x51,0xc6,0x4e,0x09, + 0xd5,0x82,0x79,0xd4,0x91,0x0a,0xd8,0x28,0x0b,0x70,0xe8,0xd6,0x28,0x97,0x95,0x41, + 0x40,0x9a,0xab,0x7c,0xe3,0x12,0xd5,0x9a,0x59,0xf4,0x8d,0x15,0x75,0x65,0x19,0x59, + 0x5b,0x8d,0x63,0x91,0xcf,0x08,0x53,0xbf,0x71,0xaa,0x28,0x57,0x0e,0x7d,0x53,0x45, + 0x29,0x2a,0xf0,0x4d,0x16,0x28,0x8e,0xee,0xd1,0xda,0x3c,0xc0,0x86,0x36,0xb2,0x73, + 0x06,0x51,0x2d,0xdb,0x75,0xf9,0x3d,0x19,0xd9,0xe0,0x0d,0x7d,0x0e,0xf3,0x5c,0xe4, + 0x20,0x79,0x26,0x7c,0xa9,0x79,0x99,0xf7,0xba,0x52,0x42,0xa6,0x89,0x2e,0x4a,0xb7, + 0x05,0x4a,0x03,0xbf,0xb1,0x38,0xff,0x9b,0xc8,0xbf,0xbf,0xef,0xca,0x41,0xab,0x51, + 0x24,0x64,0xad,0xdf,0x45,0xc2,0x30,0x2f,0x41,0xb1,0x17,0xf2,0x7c,0xfc,0x54,0x1b, + 0x10,0x3a,0x65,0x5e,0x80,0x13,0x2a,0xbb,0xaa,0x70,0x55,0x3c,0x2f,0x2d,0x52,0xaa, + 0xa8,0x99,0xdd,0xcf,0xce,0xcb,0xc2,0x57,0x7d,0xb3,0x0a,0x75,0xf9,0x1d,0x3e,0x94, + 0x9c,0x58,0xcd,0x89,0x6f,0x1b,0xba,0x69,0x5a,0xf5,0xdf,0xad,0xf2,0x42,0x97,0xae, + 0x31,0xe7,0x6d,0x67,0x69,0xf5,0x23,0xac,0xb9,0xaa,0x5a,0xe9,0x2b,0x2b,0xf3,0xad, + 0xbe,0xd7,0x34,0x52,0xfb,0x4b,0xa3,0xc2,0x32,0x52,0xa8,0x09,0x65,0x15,0xf1,0x5b, + 0xe9,0x9f,0x63,0x34,0xe4,0xf9,0xf4,0x2d,0x69,0xb3,0xbc,0x2f,0xa9,0xc0,0x50,0x24, + 0x0d,0x0b,0x05,0xe4,0x45,0xc5,0xca,0xc8,0x65,0x81,0x6f,0x5c,0x40,0x0e,0x9b,0xee, + 0x0d,0x2a,0x88,0x01,0x9f,0x15,0xe8,0x94,0x6e,0xfe,0x15,0x4b,0x7f,0xcb,0x32,0xf2, + 0x33,0x00,0xdc,0x5a,0xea,0x39,0xad,0x8f,0x32,0x05,0x19,0x2b,0x51,0xab,0xf1,0xb3, + 0xc3,0xcb,0xec,0x1a,0xa3,0x30,0xad,0x69,0x68,0x83,0xc5,0x34,0xb7,0x40,0xf1,0x37, + 0xf2,0x5c,0x12,0x39,0x8a,0x3a,0x0b,0x1e,0xae,0x42,0xa3,0xe6,0xf5,0x8a,0xe6,0xf3, + 0x76,0x47,0xad,0x6b,0xcc,0xe2,0x63,0x3e,0x92,0xfe,0x64,0xab,0xa3,0xeb,0x42,0xbb, + 0xe2,0x3d,0x82,0x93,0xec,0x00,0xff,0x8d,0x03,0xb2,0x4f,0x6b,0xc2,0xc7,0xf8,0xe2, + 0xbc,0x45,0x7e,0xa9,0x96,0x41,0x58,0xd6,0x64,0xf4,0x69,0x8c,0xb1,0x2d,0x14,0x13, + 0x3e,0x68,0xae,0x9f,0x6e,0x82,0xcf,0x31,0x3e,0x32,0x83,0xa0,0xc2,0x03,0x32,0x28, + 0xc8,0x66,0x7d,0xd1,0x0c,0x8f,0x23,0x31,0x15,0x8a,0x64,0x6c,0x6c,0x6e,0x16,0x73, + 0x2f,0x94,0xdc,0xaf,0xa0,0x18,0x26,0x4c,0x1f,0x0a,0xc9,0x50,0xe9,0xd9,0x23,0xad, + 0x93,0x4c,0x0c,0xe5,0x8a,0xd5,0xc9,0x78,0x0d,0xf0,0x91,0x7e,0x21,0x24,0x13,0xd5, + 0xf4,0xce,0xe5,0x98,0x82,0x72,0x76,0x83,0x47,0x03,0x8b,0xe2,0x6c,0x49,0x7d,0xac, + 0xe8,0x88,0x0a,0x37,0x4d,0x58,0x0e,0x4d,0xd7,0xa5,0x09,0x98,0x4b,0x39,0x67,0x30, + 0xe5,0xd1,0x7a,0xb0,0x3c,0x5a,0x01,0xca,0x41,0x1d,0x20,0x87,0xca,0xb8,0xb9,0xa3, + 0x7a,0x80,0xff,0x35,0x38,0xca,0x52,0x8f,0x43,0x53,0xe8,0x3d,0x0f,0xd2,0xc8,0xa0, + 0x0e,0xad,0x01,0x17,0xd8,0xa0,0xf1,0xd8,0xf2,0x3c,0x6c,0x08,0x8c,0x05,0x31,0x3f, + 0x29,0xc1,0xb0,0xe6,0xe0,0xe1,0x4a,0xac,0xc1,0xf5,0xa8,0x34,0xad,0xab,0xaf,0xec, + 0x7f,0x33,0xba,0x56,0x86,0x73,0xf5,0xb5,0x70,0x50,0xd2,0x7c,0x94,0xc1,0xdb,0x57, + 0x1e,0x19,0x5d,0x01,0x00,0xa1,0x23,0x65,0x83,0x0f,0x6b,0xcf,0x68,0xa8,0x43,0x9d, + 0xfb,0x15,0x36,0x0d,0x68,0x88,0x3f,0xa1,0x18,0xfd,0x80,0x31,0xc0,0xfe,0x26,0xb0, + 0x81,0xa4,0x89,0xef,0xb6,0x28,0x39,0xac,0x71,0xd5,0x01,0x60,0xc2,0xaf,0x0e,0x34, + 0x81,0x40,0x39,0x32,0x9b,0xce,0x1b,0xa7,0x55,0x9c,0x15,0xbe,0x49,0x80,0xf3,0xca, + 0xc8,0x4e,0xb9,0x2f,0x18,0x10,0x68,0xc0,0x62,0x16,0x32,0x93,0x24,0x51,0xe8,0xb1, + 0x6e,0x90,0x9c,0xd7,0xbc,0x48,0xae,0x3f,0xca,0xc6,0x89,0x81,0xd8,0xb7,0xb6,0xaf, + 0xb6,0xb7,0xe4,0xd9,0x04,0x0c,0x30,0x03,0x70,0xa1,0x41,0x18,0x86,0x72,0x5c,0x27, + 0xa8,0xa1,0x43,0xfe,0x58,0x23,0x2a,0x70,0x12,0xce,0xc7,0x61,0xcb,0x60,0xd7,0xad, + 0xd7,0xb4,0xe8,0xcf,0x26,0x98,0xf6,0xe6,0xf7,0x56,0xa1,0xb8,0x29,0xf0,0x40,0x0c, + 0x54,0xc5,0x85,0xf8,0x72,0xd5,0x51,0x59,0xe3,0x52,0xe7,0x5d,0x1a,0x02,0x4e,0x4a, + 0x8a,0x5c,0x58,0xee,0x6e,0x54,0x18,0x4a,0x2d,0x06,0x70,0xc1,0x12,0x91,0x42,0x39, + 0xbf,0x09,0xde,0x98,0xb5,0x26,0xb8,0x29,0x9a,0xe8,0xe3,0x00,0x87,0x62,0x39,0xbc, + 0x63,0x77,0x0a,0x83,0x9e,0x9d,0x42,0x22,0xbb,0xb2,0xf3,0x06,0xcd,0x39,0x53,0x51, + 0x05,0x91,0x27,0xff,0x98,0xfc,0x4d,0x04,0x34,0x16,0x0c,0x49,0xb0,0x4f,0x1c,0x15, + 0xc5,0x1a,0x1e,0x89,0x73,0x59,0x51,0x98,0xd2,0x8c,0xfb,0xfb,0x8e,0x29,0x63,0xd2, + 0x96,0x0a,0xc8,0x64,0x83,0x6c,0xed,0xd0,0x0d,0xd5,0x38,0x1c,0x75,0x37,0x37,0x39, + 0xb8,0xf1,0xa8,0xdb,0x91,0x5d,0x51,0x82,0xa6,0x6f,0xd3,0xdf,0xed,0x56,0x2b,0x6b, + 0x72,0x34,0xea,0xee,0xdf,0xdf,0x2b,0x9f,0xfd,0x9e,0x71,0xa4,0x6b,0x32,0x01,0xaa, + 0xc8,0x9f,0x03,0x5d,0xf1,0x73,0x50,0x54,0x48,0x18,0x49,0x0c,0x3a,0x07,0xe8,0xf9, + 0xfb,0x7b,0xfb,0xbd,0x3d,0xb4,0x72,0xeb,0xdb,0xc5,0x7c,0x0a,0xd8,0xca,0x45,0x30, + 0x40,0x6b,0xd1,0xac,0x89,0x51,0xa9,0x08,0x9a,0xd2,0xdf,0x44,0x40,0xa9,0xbc,0x4e, + 0x32,0x1a,0x34,0xac,0x94,0xc9,0xf0,0x2a,0x15,0xe0,0x80,0xcd,0xb8,0x90,0x04,0x73, + 0x51,0xfe,0xfe,0xfe,0x19,0x43,0x52,0x4a,0x01,0x22,0x3d,0x13,0x39,0x9e,0x95,0x56, + 0x87,0x57,0x24,0x68,0x5a,0x8d,0x21,0xfd,0x12,0xd4,0x21,0x20,0x68,0x07,0x08,0xe9, + 0x23,0x31,0xe5,0xc0,0x18,0xc8,0x80,0xc7,0x78,0x40,0x50,0x18,0x61,0x16,0x5c,0x18, + 0xf7,0x15,0xb7,0x50,0x04,0x54,0x69,0x59,0xaa,0xa9,0xfd,0xde,0x51,0x29,0x71,0xd0, + 0x31,0x2a,0xfd,0x80,0xcc,0xde,0xd4,0x43,0x61,0xa9,0x2a,0x15,0x39,0xb2,0x6e,0x53, + 0xdd,0xea,0x32,0xaa,0x9b,0x81,0xb8,0x9f,0x51,0x92,0xd2,0xf2,0xec,0xb9,0x1d,0x5f, + 0xad,0xbd,0xc0,0x72,0x71,0x1e,0x59,0x68,0x29,0x70,0xd2,0x91,0x2f,0xc1,0x7c,0xc4, + 0x15,0x46,0x59,0xd0,0xe9,0x7c,0xf3,0x3c,0xba,0x16,0x7c,0x9e,0xa3,0x06,0x51,0x5e, + 0x71,0x12,0xce,0x25,0x0c,0xa5,0x4e,0x29,0xe8,0x74,0x73,0xdd,0xac,0x2a,0xf1,0xe8, + 0x3c,0x68,0x12,0xa1,0xad,0x24,0x11,0x08,0x29,0xcc,0xe1,0xc2,0x1b,0x47,0xda,0x8a, + 0x25,0xa6,0x1d,0xb7,0x7a,0x25,0xd1,0x2f,0xa0,0x44,0x03,0xe4,0x78,0xf1,0xf8,0xa2, + 0xa3,0xaf,0xda,0xf3,0x0f,0x34,0x52,0x71,0xd1,0x48,0x75,0xa9,0x50,0x2c,0x30,0xb8, + 0xed,0xb8,0x84,0x94,0xd7,0xf3,0xa5,0x61,0x99,0x03,0x11,0x60,0x73,0x93,0x92,0x55, + 0x61,0x48,0x6d,0xa3,0xc0,0x7c,0x20,0xe5,0x4f,0xb1,0x1f,0x47,0xe5,0x3c,0x84,0x75, + 0xf8,0x0f,0x71,0x9f,0x96,0xda,0x9b,0x49,0x43,0x31,0x79,0xd0,0xea,0x42,0xd6,0x9c, + 0x6c,0x4b,0x62,0x82,0x2e,0x1b,0x9f,0xa6,0xd3,0x41,0x35,0x12,0xbe,0x88,0xee,0xac, + 0x86,0xc1,0xf7,0xef,0xc8,0x1f,0x23,0x5b,0x41,0xfd,0x64,0x01,0xcc,0x6e,0x2e,0xab, + 0xec,0x24,0x4a,0x14,0xec,0x04,0xdf,0x70,0x27,0xaf,0x1f,0xbc,0x1b,0xe1,0xcd,0xe7, + 0xae,0xe3,0xd9,0xf4,0xac,0x38,0x06,0x11,0x00,0xd2,0x65,0x7b,0x18,0x1a,0x80,0xde, + 0x66,0x93,0x77,0xfe,0xc9,0xd9,0xe3,0x3d,0x2d,0x2a,0x87,0x54,0xc7,0xe3,0x14,0x68, + 0xdc,0xf6,0x27,0x0b,0x9f,0x62,0x74,0x4e,0xb3,0x80,0x27,0xe2,0x25,0x4e,0xf1,0x30, + 0x51,0xf6,0x54,0x11,0x9f,0xc6,0xa0,0x29,0xc4,0xb1,0x8a,0x5a,0xa1,0x2a,0x44,0xf0, + 0xae,0x8d,0x46,0xcb,0x87,0x21,0x3a,0xec,0x64,0xc2,0x41,0x93,0xaf,0x4e,0x74,0xa1, + 0x48,0x54,0x50,0x6e,0x24,0xe9,0xe5,0x43,0xce,0x40,0x22,0x0b,0xdf,0x13,0xda,0xd6, + 0x4d,0x40,0x36,0x6b,0x7c,0x23,0x7e,0x24,0x53,0xf1,0x63,0x12,0x57,0x78,0x04,0xeb, + 0x7a,0x2d,0x3f,0xf7,0xd6,0x96,0xe4,0x04,0x9d,0xbc,0x47,0xdb,0xe8,0x67,0xa9,0x78, + 0x7d,0x33,0x47,0x54,0x0a,0x2b,0xbf,0x2d,0xfc,0x4d,0xa5,0x46,0x2e,0x97,0x55,0x1c, + 0xde,0xd8,0x84,0xcf,0x2d,0x55,0x0e,0xfa,0x27,0x42,0x0e,0xc6,0x5a,0x8c,0xc5,0x4a, + 0x97,0x86,0x7a,0xf3,0x83,0x0e,0xa7,0x27,0xd3,0xcb,0xd1,0x64,0x28,0x70,0x1d,0xe1, + 0x27,0xa5,0x1a,0xf1,0x3b,0x73,0xa2,0x97,0x87,0x01,0x9c,0x44,0x4e,0x02,0x79,0x2b, + 0x8f,0xe8,0x1b,0x45,0x37,0x98,0x25,0x9d,0x7c,0x9f,0xa1,0xe5,0x1d,0x10,0x3a,0x8f, + 0x90,0x65,0x0c,0x0b,0x19,0xd9,0xd3,0xba,0x78,0x78,0x96,0x2d,0xea,0x55,0xe3,0x9a, + 0x12,0xa4,0xaf,0x46,0xaa,0x02,0x60,0x82,0x7e,0x21,0x0f,0x24,0x68,0x9c,0x42,0x9d, + 0x00,0x51,0xbe,0x51,0x2b,0x90,0xe7,0x85,0xbc,0x57,0x05,0x0d,0xf4,0xed,0xf1,0x88, + 0x4a,0x85,0x09,0xba,0xde,0xea,0xd6,0x14,0x72,0x48,0x89,0x9c,0x8d,0x20,0x0f,0xc4, + 0x19,0x7b,0x5c,0x72,0xab,0xd7,0x2d,0x7c,0xc6,0x4b,0x67,0x1f,0xa2,0x99,0x31,0x99, + 0x29,0x6e,0x3b,0xc2,0x4f,0x4b,0xcf,0x65,0xff,0x15,0x4e,0x65,0xf2,0xdc,0xa9,0x58, + 0x69,0x05,0x72,0x67,0x75,0x04,0x6f,0x14,0x67,0x27,0x25,0x94,0x5f,0x3d,0x6d,0xec, + 0x2c,0x13,0x7b,0x26,0x99,0xe4,0x5d,0x90,0xc4,0x0b,0x62,0xfc,0xd0,0x9e,0xfe,0x04, + 0x54,0x09,0x67,0x97,0x3b,0x2f,0x76,0x87,0xde,0xab,0x51,0xe6,0x62,0x41,0x5e,0x8c, + 0x4b,0xc1,0x71,0x71,0x95,0xdf,0x22,0x1b,0x4a,0x5a,0xdf,0x15,0xb1,0xc0,0xf4,0xf0, + 0x82,0x52,0x5d,0xa1,0x1c,0x23,0xa0,0xcc,0xc3,0x46,0x72,0x17,0x4c,0x3e,0x93,0x69, + 0xf1,0xad,0xe7,0xa3,0xc3,0x18,0x9f,0xf5,0xd7,0x9a,0x5d,0xd4,0x6d,0x36,0x2c,0x9f, + 0xe1,0x66,0x9b,0x4b,0x68,0xb3,0x45,0x11,0x21,0xa7,0xcd,0x80,0x4f,0xa6,0xd4,0x33, + 0xaf,0x47,0xaa,0x7e,0x6a,0x2c,0xab,0x5a,0x21,0x3b,0x32,0x14,0x14,0xc8,0x07,0xd6, + 0x50,0x8d,0x55,0xcc,0xe1,0x0a,0xef,0x95,0xc9,0x5a,0xcc,0x22,0x50,0x91,0xc5,0x03, + 0x14,0x23,0x87,0x71,0x65,0x06,0xaa,0x67,0xa6,0x28,0x25,0xfd,0x76,0x09,0xbe,0xf4, + 0x32,0x13,0x21,0xe3,0xb3,0xa2,0xb9,0xc9,0x9e,0x8e,0x22,0x3b,0x4e,0xdc,0xb7,0x18, + 0x45,0xa3,0xa5,0xf2,0x4e,0xe8,0x31,0xe3,0xce,0x68,0xec,0x2a,0xf0,0x1b,0x2f,0x79, + 0xeb,0x05,0x5e,0xea,0xb6,0xec,0xa9,0xb1,0xb9,0x69,0x4f,0x0f,0x47,0x9d,0x23,0xfd, + 0xff,0x00,0x63,0x16,0x7e,0xa9,0xe1,0x22,0x70,0x5a,0xf8,0xf4,0xc1,0x0e,0x94,0xd8, + 0xee,0x1a,0xc6,0x0e,0x88,0xfa,0xdb,0xfa,0x7f,0x68,0xce,0x22,0xbd,0xd3,0xe8,0xb1, + 0x16,0xf4,0x37,0xc5,0x81,0x67,0x27,0xf7,0xd5,0x13,0x71,0xf2,0xe7,0x2f,0x1f,0x88, + 0x0b,0x25,0xc9,0xbd,0xb6,0x52,0xba,0x64,0x33,0xac,0xd1,0xfb,0x73,0xf3,0xc8,0xe6, + 0xe6,0x33,0x28,0x89,0xbe,0x5d,0x48,0x98,0xd4,0x0b,0x17,0xc6,0x5a,0x84,0xab,0xb6, + 0x61,0xb6,0x07,0xd1,0xcd,0x94,0x77,0xc1,0xcc,0x8d,0x01,0x10,0x4e,0xe1,0x2e,0x07, + 0xd4,0xf2,0x1c,0x33,0x33,0x5c,0x1a,0xe5,0xa6,0x84,0x7a,0x58,0xa7,0xaa,0x49,0xdb, + 0x8c,0xda,0x71,0xc1,0x56,0x70,0x85,0x1a,0xa1,0x9a,0xcb,0xca,0x61,0x95,0x18,0x84, + 0x64,0x3b,0x08,0x81,0x0b,0x64,0x4a,0x63,0xa8,0x8c,0x09,0xf1,0x3c,0x47,0xee,0x02, + 0xdd,0xcc,0x0a,0x21,0xbe,0xd7,0x8f,0x09,0xa8,0x56,0xd9,0x82,0x51,0x1a,0x17,0xa4, + 0xac,0x35,0xb2,0x50,0x90,0x2b,0x95,0x07,0xd7,0xf5,0x18,0x5f,0x66,0x56,0xa3,0x02, + 0xe5,0x79,0x9c,0x2a,0x42,0x77,0x61,0xf3,0x8e,0x53,0x4c,0x4d,0x82,0xd0,0x15,0x21, + 0x23,0x5e,0x6c,0x46,0x4e,0x21,0xae,0x7f,0x48,0x97,0x3d,0x24,0xef,0x78,0xce,0x9d, + 0x3d,0x98,0xc9,0x8e,0x2e,0x1a,0x3b,0xfd,0x50,0x74,0x38,0xbc,0x04,0xae,0xcd,0xc2, + 0x00,0xc8,0x12,0xb1,0xc1,0xcd,0xcd,0xc4,0x12,0xaf,0xff,0x58,0x1c,0xcf,0x4b,0x4c, + 0x6a,0x3e,0x6a,0x77,0x87,0xa7,0xc7,0xaf,0xdf,0x7d,0xfa,0xf6,0xf9,0xf4,0xcd,0xd9, + 0x9b,0xf3,0xb3,0xea,0x3c,0x22,0xa0,0x7b,0x08,0x38,0x69,0x26,0xe1,0x7e,0x18,0x0e, + 0x91,0x01,0x03,0x34,0xe6,0x23,0x0f,0x07,0x9f,0x08,0x90,0xce,0x71,0x5b,0x0a,0x36, + 0x30,0x37,0x06,0x2d,0x39,0x97,0x02,0x8d,0x39,0xd2,0x71,0xfc,0xfa,0x20,0xc9,0xb6, + 0xfa,0x83,0x10,0xa8,0x85,0x7d,0x21,0x17,0x22,0x94,0x8b,0x68,0xaa,0x79,0x69,0x73, + 0x33,0x67,0x8e,0xea,0xef,0xdc,0xe4,0x01,0xd2,0xa0,0x51,0x35,0xd0,0x55,0xcd,0x9a, + 0x6a,0x2e,0x4a,0x65,0x02,0x0d,0x57,0x6f,0x71,0xa5,0x99,0xa6,0xfd,0xfc,0xac,0x89, + 0x08,0xe0,0x70,0x45,0x27,0x64,0x1c,0xe6,0xc9,0x37,0xe0,0x7b,0xc5,0xd4,0x56,0xcc, + 0xcf,0xc5,0xc8,0xe1,0x46,0x13,0xfe,0x2a,0x56,0x7f,0x81,0x6c,0x85,0x2f,0x94,0xba, + 0x36,0x8a,0x76,0xb4,0x8a,0xa4,0x9a,0xc1,0xa4,0x76,0x9c,0x82,0xb2,0x14,0xfa,0xc1, + 0x24,0xf5,0xa3,0xd8,0x0b,0x1a,0x8f,0x4a,0x0d,0x94,0xba,0x79,0x28,0xba,0x94,0x94, + 0x98,0xcf,0x52,0x98,0x23,0x54,0x5b,0x57,0x86,0x5c,0x02,0xc9,0x05,0xaf,0x89,0xa2, + 0x7f,0x78,0x89,0x87,0xba,0xee,0xb3,0xef,0x5a,0xd2,0x1b,0x4c,0xd5,0x43,0xc5,0xd3, + 0x1e,0x49,0xc9,0x3b,0x59,0xc4,0xdb,0xa8,0xd3,0x58,0xe9,0x72,0x9f,0x19,0x1c,0x76, + 0x80,0x0b,0x65,0xcd,0x2b,0xf5,0xda,0x41,0x49,0x53,0x0a,0xb6,0x5b,0x01,0x5a,0x2f, + 0x40,0x9f,0xe4,0x90,0x18,0xc0,0x87,0x64,0x70,0x0c,0xbd,0x6c,0x1d,0xc8,0xa2,0x71, + 0x2c,0x15,0x01,0xbf,0x2c,0x72,0x0b,0xa5,0x88,0xb6,0xa6,0xfc,0xcd,0x17,0x1f,0x75, + 0x0e,0xe1,0xe1,0x3a,0x3a,0x5d,0x26,0xa1,0x2b,0xb3,0xef,0x3f,0x9d,0xa3,0x97,0xe8, + 0xfb,0x37,0x1f,0x47,0xcb,0x34,0xbc,0x72,0x83,0xc1,0xee,0x0b,0x73,0x91,0xe0,0xc3, + 0x72,0x73,0x77,0xd0,0xef,0x66,0xf7,0x5e,0x07,0xfb,0x7d,0x93,0xe3,0x30,0xe1,0x2f, + 0x8a,0x86,0x3d,0x78,0xb9,0x67,0xda,0x0b,0xc7,0xc3,0x68,0x26,0xe8,0xef,0xcf,0x60, + 0xfd,0xfc,0xf3,0xf9,0xb7,0xf3,0xff,0xfa,0xfc,0xe6,0x6c,0x74,0x71,0xd1,0x31,0xf5, + 0xd3,0x37,0xff,0x53,0xff,0x6a,0x5e,0x74,0xf1,0xd7,0xd9,0xe7,0x4f,0x1f,0xcf,0xde, + 0xe0,0x67,0xcf,0xd4,0xcf,0x7f,0x85,0x9e,0xcf,0x7e,0xc4,0xaf,0xbe,0xa9,0x1f,0x9f, + 0xfc,0x8c,0xbf,0x76,0xe1,0xd7,0xeb,0x7f,0xbc,0x39,0x3d,0x87,0x8f,0x8d,0x8b,0x3d, + 0x53,0xff,0xf1,0xf4,0xf3,0x37,0x28,0x89,0x79,0xfb,0xfc,0xf5,0xfa,0xf8,0xfc,0x18, + 0x3f,0x5f,0x40,0xd1,0x8f,0x9f,0x3e,0x7e,0x13,0x1d,0x1c,0x98,0xfa,0xe7,0xe3,0xf3, + 0x9f,0xf0,0xe7,0x4b,0x68,0xfc,0xf4,0xf8,0xe4,0x0d,0xb5,0xd1,0x85,0x31,0x7c,0xf8, + 0xf2,0xfe,0xfc,0xdd,0xe7,0x63,0x6a,0xf5,0xa2,0x0b,0x43,0x39,0xf9,0xf4,0xf1,0xfc, + 0xf4,0xd3,0x7b,0xfa,0x84,0xa1,0x20,0xe1,0x82,0x99,0x39,0xf4,0xdd,0x2f,0x7d,0xef, + 0x16,0xbe,0xa1,0x41,0x18,0xd5,0xe9,0xf1,0x2f,0xdf,0x4e,0xbe,0x9c,0x9d,0x7f,0xfa, + 0xa0,0x7f,0xfd,0x9a,0x4f,0xfb,0xe3,0xf1,0x87,0x37,0xaf,0x25,0xe6,0x4d,0x62,0x17, + 0xf0,0xb2,0x85,0x3e,0x3a,0xb0,0x8e,0x19,0x54,0x6a,0xe8,0x28,0x2d,0x55,0x74,0xd1, + 0xc5,0x03,0xb0,0xbc,0x2f,0x23,0x6b,0xf1,0x02,0xf3,0x00,0xc5,0xe8,0xd9,0x99,0x13, + 0xd8,0x16,0x2d,0xe3,0xeb,0x28,0xba,0xe8,0x7c,0x2d,0xec,0x83,0x29,0x89,0x9d,0x1f, + 0xec,0xe4,0xaa,0x85,0x08,0x26,0x36,0x42,0x2a,0xe5,0x6e,0x4c,0xcb,0x3d,0x86,0xa8, + 0x84,0x05,0x39,0xf3,0x16,0x93,0xb3,0x94,0xe8,0xcd,0xfd,0x3d,0xfd,0xb5,0x7d,0x3f, + 0x3b,0xc4,0xec,0xdc,0xbe,0x85,0xff,0xe5,0x65,0x28,0x40,0x5d,0x96,0x29,0x6d,0x49, + 0xc9,0xd5,0xa8,0x63,0x86,0x57,0xe2,0x04,0x06,0xb4,0x32,0xc0,0x3b,0x40,0x38,0xb3, + 0x8e,0xff,0xe1,0x43,0x38,0x72,0x74,0x50,0x05,0x3f,0xc5,0x48,0xcc,0x00,0xd9,0x0e, + 0xdd,0x57,0xfc,0xe7,0x45,0xa7,0xfd,0xf2,0xeb,0xf6,0x77,0xe2,0x7a,0x21,0x14,0x34, + 0x8c,0x80,0x65,0xc3,0x77,0x01,0x7d,0x9b,0xdd,0x8e,0x91,0x53,0x36,0x48,0x28,0x42, + 0x08,0x99,0x4a,0x06,0x41,0xa8,0x9a,0x43,0xb3,0x52,0x94,0x0f,0xc6,0x82,0x57,0x9d, + 0xfb,0xfb,0xe0,0xb0,0xbb,0x07,0xec,0xf9,0x4a,0x88,0x5c,0x3c,0xcd,0x87,0x0d,0x9c, + 0xe0,0xfd,0xa8,0xd5,0x7d,0xf5,0x2a,0xc8,0xcc,0xda,0x04,0x80,0xf0,0xea,0x08,0xf3, + 0x06,0x12,0x4a,0x0f,0xe5,0xf5,0x38,0x07,0x40,0xb7,0xb0,0x08,0x53,0x41,0x82,0xd4, + 0x68,0xc4,0xc5,0xa5,0xb1,0x19,0xc1,0x3d,0x54,0x73,0x65,0x06,0xc1,0x5a,0x9c,0xc3, + 0x2e,0xd2,0x11,0x3a,0xed,0x16,0xef,0x62,0x75,0xf7,0x49,0x8d,0x11,0x55,0x37,0x71, + 0x80,0x9e,0x61,0x40,0x59,0x2b,0x5a,0x24,0xb3,0x96,0xa7,0x0c,0x14,0xd2,0xf8,0xe6, + 0x94,0x59,0x22,0x2b,0x89,0x54,0x6b,0x7e,0x4a,0xe7,0x7e,0xcb,0x33,0xa7,0x26,0x1e, + 0xf1,0x9a,0x74,0xd7,0xd5,0x44,0xdb,0x4e,0x76,0x35,0x6b,0xab,0x10,0x28,0x51,0x4b, + 0xa6,0xed,0xad,0xed,0x29,0x08,0x55,0x32,0x42,0xe2,0xd6,0x36,0xfd,0xdd,0xde,0xaa, + 0x8d,0xbf,0xbb,0xb5,0x8d,0x7f,0xa1,0x78,0x21,0x0c,0xf4,0xd6,0xb6,0xb7,0xbd,0x65, + 0x71,0x3b,0xeb,0x86,0x72,0xad,0x89,0x36,0xba,0xb5,0xdd,0xc2,0xa1,0x1e,0x6d,0x55, + 0xc3,0x50,0x6e,0x6d,0xe3,0x5f,0x1c,0x14,0xc6,0x0f,0xd8,0x1a,0x6c,0x6d,0x19,0xd9, + 0x47,0xf1,0x52,0x9f,0xa2,0xbd,0x31,0x2c,0x04,0x96,0x8e,0xc3,0x5b,0x37,0x19,0xe5, + 0x3b,0x78,0x6e,0x47,0x45,0x1f,0x6b,0x09,0x1e,0x9a,0x75,0x16,0x65,0xf5,0x6a,0x75, + 0x98,0xe3,0x68,0x8a,0x30,0xf1,0x70,0xde,0x42,0xa9,0xde,0xda,0xc6,0x4d,0x8d,0x00, + 0xe5,0x08,0x83,0x87,0x32,0x41,0xc3,0x1f,0xdd,0xaf,0x38,0x6c,0x19,0x1a,0x85,0x01, + 0x5e,0xba,0x10,0xd7,0xb4,0x4c,0x8c,0x8a,0x4a,0x70,0x58,0x7e,0x94,0x01,0x46,0x95, + 0x85,0xab,0xdf,0xda,0x80,0xd6,0x57,0x3d,0x27,0x98,0x2f,0x96,0x6c,0x8d,0xaa,0xa8, + 0x61,0x65,0xaf,0x2e,0x11,0xda,0x04,0xad,0x0c,0xc2,0x95,0x32,0x36,0x0c,0x63,0x55, + 0x3c,0x3b,0x1f,0x83,0x4f,0x08,0x00,0x81,0x00,0x20,0x60,0x34,0xc0,0x3d,0x82,0x61, + 0xf0,0xb3,0x68,0x44,0xd4,0xf2,0x9f,0x68,0x28,0x0f,0xb0,0x59,0x6c,0x4a,0x0d,0x0b, + 0x02,0x15,0x16,0xf3,0x52,0xc8,0xa1,0xf2,0x4c,0x18,0xb9,0x7e,0x99,0x79,0x13,0x7c, + 0x09,0xe3,0x0e,0x19,0x32,0x43,0x94,0x2c,0x93,0xfc,0x78,0x88,0x12,0x03,0x86,0x1f, + 0x0a,0xb1,0x34,0xe5,0x1d,0xa7,0x71,0x98,0xca,0x47,0x34,0xd8,0x6a,0x69,0xdf,0x88, + 0x7a,0xc9,0x50,0x3e,0xf4,0x81,0xe9,0x99,0x97,0x0e,0xb5,0x1c,0xd0,0xfb,0x24,0xbc, + 0x06,0x18,0x3f,0x95,0x64,0x4a,0x34,0x66,0x72,0xe4,0x54,0x80,0xbe,0x6c,0x44,0xbe, + 0x55,0x52,0x08,0x76,0x5a,0x44,0xf9,0x1a,0xa3,0x45,0x41,0xb7,0xfb,0x6e,0xa4,0xcb, + 0xe5,0xae,0xd5,0x9c,0xa4,0xba,0xe0,0x8d,0x66,0xb9,0x34,0x5c,0xef,0xef,0xba,0x63, + 0x00,0x06,0x0f,0x85,0x20,0x1f,0x3b,0x50,0x21,0xb7,0x5f,0x21,0x09,0x12,0xe6,0x00, + 0xcc,0x2b,0x5e,0x4d,0x43,0x9a,0xa8,0xf0,0xb6,0x59,0xa6,0x17,0x60,0xd1,0x6a,0xc4, + 0x07,0x31,0xf4,0x7c,0x77,0xd5,0x0e,0x7c,0x82,0x17,0x4e,0x27,0xe3,0xdc,0x8f,0x26, + 0xa3,0x9f,0x19,0x8b,0x81,0x5c,0xb6,0x78,0x03,0x9f,0x31,0x0c,0x60,0xcd,0x9d,0xfc, + 0x00,0x19,0xd0,0x63,0x54,0xed,0x1e,0xef,0x66,0x12,0xe6,0x88,0xbb,0x27,0x8b,0xb9, + 0x01,0xff,0x15,0x03,0x4b,0xa8,0xf4,0xff,0x08,0x29,0x3f,0x23,0x8d,0x3e,0xc8,0x88, + 0xff,0x91,0x2e,0xdf,0x98,0x91,0x48,0xa4,0x0f,0xca,0xbc,0x44,0x0c,0x03,0x1f,0xa8, + 0x2d,0x00,0x72,0x2a,0xba,0xc6,0x0c,0x03,0xff,0x69,0xd6,0x33,0x95,0x05,0x2b,0xd9, + 0x78,0xca,0x77,0x9d,0x15,0xfc,0xa0,0xf0,0xe4,0xae,0x03,0x5c,0x82,0xd6,0x69,0xa9, + 0x70,0xff,0xbf,0x61,0x3d,0x50,0x85,0xcb,0x96,0xc4,0xc8,0x79,0x6e,0xfd,0x92,0xe4, + 0xab,0x21,0xa8,0x93,0x0e,0xcd,0x67,0xe8,0x6a,0x5e,0x8f,0xca,0x40,0x1b,0x96,0xad, + 0x16,0x8d,0xa6,0x0a,0x40,0xeb,0x99,0x3c,0x96,0x29,0x6a,0xdf,0x57,0xa4,0x77,0xd7, + 0xda,0xfa,0xd4,0x7b,0x70,0xb9,0xe5,0x38,0xc9,0x8c,0xc1,0xb3,0x30,0xc1,0x90,0x23, + 0x98,0x40,0x98,0x8e,0xdf,0x05,0x4c,0x9f,0x01,0xcf,0xe1,0x4b,0x10,0x2b,0x4d,0x96, + 0x2c,0x0e,0x60,0xe0,0x83,0xad,0xda,0xd8,0xc1,0xf8,0x46,0x51,0xe0,0x6a,0xed,0x2c, + 0x00,0xf0,0xd6,0x50,0xb9,0x04,0x54,0x2b,0x7e,0x62,0x6b,0xdb,0x95,0xe6,0xb6,0xb6, + 0x31,0x24,0x49,0x44,0xfe,0xe1,0x06,0x72,0xa5,0x52,0x42,0xde,0x01,0xc2,0xa8,0xbe, + 0x8d,0x09,0x1d,0xe1,0xe8,0x87,0xfc,0xd7,0xb2,0x2c,0x75,0x54,0x38,0x61,0xac,0xa2, + 0x86,0xe0,0x43,0x4a,0xc0,0x54,0x1b,0x7f,0x4a,0x9c,0xa9,0x50,0x5f,0x0a,0xec,0x36, + 0x3e,0x44,0x18,0x6b,0x54,0x84,0x83,0x76,0xd5,0x11,0xea,0xa9,0xfa,0x9e,0xad,0xfa, + 0x52,0x42,0xcd,0xfb,0x2c,0xcc,0xe0,0x18,0x54,0x38,0x5f,0x9a,0xd4,0x56,0x29,0x82, + 0x32,0x74,0x50,0x96,0x99,0x74,0x52,0x9d,0x40,0xb4,0xca,0xdc,0x72,0x41,0x39,0x99, + 0x4c,0x30,0x94,0x97,0xcc,0xd1,0x8d,0x9a,0x6a,0x52,0xd1,0x82,0x7c,0x0a,0x6f,0x62, + 0xea,0x5f,0xf2,0x94,0xda,0x1a,0x4a,0x07,0xca,0xcf,0xcf,0xf9,0xcf,0xda,0x5a,0xac, + 0xb8,0xe5,0xbd,0xf0,0xf3,0x20,0x84,0x92,0x8d,0x1d,0x85,0x31,0xe6,0x89,0x48,0xe1, + 0xd0,0x05,0x7f,0xd7,0x96,0x25,0x6d,0x30,0x6f,0xfd,0x1c,0x3f,0xb5,0xd4,0x05,0x09, + 0x0d,0x5f,0xea,0x83,0xba,0x79,0x14,0xd1,0x64,0xa0,0x2d,0xd1,0xa1,0xf7,0x41,0x5b, + 0x72,0x58,0x34,0xf8,0x81,0x14,0x10,0xff,0x20,0xa4,0x1e,0x6a,0x3b,0x90,0x5a,0x66, + 0xde,0xc7,0x7f,0xfe,0x72,0xae,0x29,0xa9,0xf2,0x3e,0xa6,0xd6,0x56,0xa2,0xb8,0x23, + 0x74,0x77,0x10,0x4a,0x1a,0x5f,0x37,0xdb,0xd8,0xae,0x11,0xf1,0x36,0x0a,0xc2,0x20, + 0x42,0x44,0xb9,0x32,0x8b,0x18,0x5a,0x77,0x42,0xaf,0x1c,0x05,0x60,0x0d,0x34,0x84, + 0x6d,0xd4,0xee,0x69,0x66,0x75,0xd8,0x68,0x91,0x53,0x08,0x32,0xa4,0xe2,0xb8,0xf0, + 0xa8,0xa9,0x72,0x40,0x46,0xc7,0x37,0x7e,0x1d,0xc7,0xc9,0xc9,0x59,0x05,0x7d,0xc9, + 0xb1,0x83,0x6c,0x21,0x80,0x4e,0x23,0xd9,0x88,0xea,0x02,0xe0,0xb8,0x53,0x52,0x08, + 0x87,0x8f,0x90,0x07,0xd4,0x4e,0x69,0xd3,0x03,0x7b,0xa2,0xbd,0x8f,0x15,0x23,0x49, + 0x7d,0xe9,0x6e,0xeb,0x48,0x64,0xcb,0x0d,0x7f,0x24,0x7f,0x0c,0x5a,0x50,0xf8,0x08, + 0xfe,0xe3,0x3b,0xb0,0x03,0xa1,0x3f,0xe6,0x11,0x80,0x3e,0x00,0x0b,0x13,0x96,0x07, + 0x6e,0x69,0x34,0x92,0xbb,0x29,0x33,0x43,0x64,0x19,0x98,0x82,0x0b,0x0a,0x8a,0x6a, + 0x96,0x26,0x3a,0x32,0x37,0x32,0x4b,0xc5,0xca,0xe2,0xd9,0xae,0xa9,0x69,0x42,0xd8, + 0x37,0x6a,0x9a,0x06,0xe4,0xaf,0x26,0xb3,0x11,0xa4,0x92,0x9c,0x99,0x44,0x2a,0x39, + 0xcc,0x91,0x06,0x38,0xa7,0x67,0x52,0x95,0x7e,0x28,0xfa,0xea,0x09,0x90,0xd4,0x30, + 0xa5,0xa9,0x20,0xfd,0x37,0xf5,0x92,0x07,0x88,0xf9,0xfa,0xf6,0x94,0x50,0xe8,0xc6, + 0xb8,0x59,0x11,0x92,0x80,0x3b,0xb8,0x98,0x7e,0xcd,0x58,0xfd,0x8a,0x23,0x0f,0x61, + 0x93,0x7a,0xe4,0xcc,0xc3,0x9c,0x57,0x4c,0xa2,0x9b,0x9b,0xad,0x79,0xe1,0xf4,0xb3, + 0x5e,0x2a,0x64,0xb4,0xe3,0x6b,0x50,0x1b,0x17,0xea,0xc9,0x9b,0xa9,0x9c,0xb0,0xd5, + 0xdc,0xd0,0x24,0xbe,0x5a,0x77,0x30,0x87,0x19,0x26,0xdd,0x9e,0x32,0x9a,0x4c,0xf7, + 0xd1,0x34,0x73,0xba,0x85,0xdd,0x59,0x38,0x49,0x15,0x92,0x28,0x5b,0x93,0x61,0x1f, + 0xd6,0x09,0x3f,0x85,0x96,0x58,0x10,0x1a,0x0a,0xa3,0xe4,0x2a,0x48,0xe2,0x6d,0xce, + 0x3a,0x40,0x8e,0x73,0x38,0xca,0x81,0x1c,0x55,0x52,0xe4,0x91,0x02,0xa9,0x32,0x5f, + 0x75,0x83,0x02,0xaf,0xb1,0xdf,0xd6,0xb8,0x48,0x2c,0x30,0x18,0xe4,0x68,0xac,0x8c, + 0x10,0xff,0x15,0xe6,0x98,0x01,0x9e,0x55,0x92,0xc1,0x25,0x01,0xbd,0xd2,0x04,0xe9, + 0x53,0x7c,0x74,0xbf,0x4a,0xb3,0x8f,0x42,0xb6,0xc6,0x6b,0x48,0xe8,0x7f,0x55,0xe6, + 0x53,0x44,0x70,0xe8,0x1d,0x41,0xb8,0x42,0xdc,0x2c,0xdd,0x25,0xc4,0x13,0xed,0xb7, + 0x21,0xc6,0x65,0x31,0xc3,0x2b,0x73,0x9e,0xc8,0x03,0x99,0xda,0xe3,0x71,0x1c,0x39, + 0x64,0x14,0x7d,0xdb,0x7d,0x67,0xb4,0xfa,0xa8,0x1c,0x4a,0x18,0xf0,0x9f,0x72,0x58, + 0xce,0x77,0x01,0xb3,0x75,0x66,0x23,0x9f,0x88,0x87,0xd6,0xc2,0x18,0xf8,0xe4,0x8a, + 0x3f,0xe1,0xfd,0xf7,0x11,0x89,0xa2,0x8e,0xcd,0xe1,0x51,0x64,0x78,0x75,0xa4,0x87, + 0x57,0xb0,0x08,0x74,0x73,0x72,0x38,0x29,0x2a,0x06,0xc9,0xe5,0x70,0xa3,0x66,0x30, + 0x1c,0x72,0xcc,0xb0,0xf0,0x1d,0x9f,0xc0,0x39,0x99,0x81,0x60,0xd9,0x9a,0x94,0x0c, + 0x38,0xf6,0xb5,0xcb,0x90,0x4a,0x5a,0xd0,0x62,0x6c,0x9b,0x24,0x4d,0x13,0x81,0x75, + 0xd3,0xb9,0x4d,0x8e,0x28,0x1b,0xf5,0xf6,0xf0,0x04,0xc3,0x4b,0xe5,0xa6,0x63,0x53, + 0x56,0x8c,0xec,0xd1,0x4e,0xbe,0x3b,0xd9,0x06,0x67,0x1b,0x47,0x59,0xcd,0x0b,0xfb, + 0x6b,0x66,0x0c,0x3c,0xea,0x0c,0xba,0xc6,0xa0,0x27,0xf0,0x6f,0x5c,0xad,0x38,0x56, + 0x2b,0x8e,0x6b,0x2a,0x4a,0x1f,0x17,0x40,0x99,0xf1,0xfd,0xbd,0x6d,0xd1,0x33,0x21, + 0xee,0x09,0x3e,0x2b,0x1a,0xbb,0x50,0x9d,0xcc,0x1c,0x75,0x2e,0xaa,0x3c,0x3f,0x3c, + 0xcd,0x56,0x8f,0xba,0xe5,0x8d,0xe4,0xd0,0xb9,0x1b,0x61,0x91,0x01,0x17,0xe3,0x00, + 0x61,0x0c,0xa2,0xcd,0x4d,0xfa,0x63,0xb1,0x6b,0x90,0x81,0xb1,0xa3,0xd4,0x07,0x86, + 0x02,0x01,0xb9,0x3c,0x83,0xdf,0xc1,0x29,0xa4,0x97,0x1f,0x4d,0x29,0xe6,0x16,0x6f, + 0x4b,0x36,0x66,0xca,0xab,0x91,0x4a,0x01,0x83,0xee,0x8c,0xf3,0xc8,0x84,0x41,0x15, + 0xc6,0x5d,0x58,0x3f,0x2e,0x28,0x4e,0x33,0x50,0x69,0xdc,0xdc,0x7c,0xa6,0xd4,0x32, + 0x96,0xc2,0xe0,0xff,0x51,0x68,0x92,0x69,0xc8,0xf1,0x3d,0x8c,0xcc,0xa2,0xc9,0x6e, + 0xd0,0x18,0x07,0x2b,0x0b,0x25,0x35,0x14,0x2d,0x60,0x22,0x87,0xc6,0xca,0x8f,0x2d, + 0xe8,0x3e,0x77,0xe9,0x2e,0xf7,0x86,0x72,0x83,0x57,0xb8,0xff,0x70,0x38,0xac,0xca, + 0x1d,0xde,0x28,0xf4,0xfd,0x53,0x37,0xc1,0xdb,0xe2,0x93,0xb1,0xd9,0x81,0xff,0xc3, + 0x06,0x4c,0xea,0xc4,0x14,0x93,0xc1,0x7b,0xd2,0x8f,0x04,0x0e,0x18,0x15,0x03,0x07, + 0xd4,0x0d,0x8c,0xcd,0xb6,0xa4,0x48,0x1a,0x93,0x31,0x19,0xdf,0x4d,0xe1,0x68,0x29, + 0x67,0x4e,0x2d,0x2a,0xe1,0xd0,0x3a,0xf7,0xf7,0xea,0x77,0xb7,0x8f,0x26,0x90,0x95, + 0xcd,0x73,0x13,0xb0,0x12,0x6c,0x2c,0x79,0xdc,0x17,0xa8,0x7a,0x5c,0xc8,0xd5,0x15, + 0x0a,0xc6,0x01,0x36,0xb3,0xa9,0xde,0xdf,0xeb,0xb1,0xcb,0x0f,0xca,0xea,0x19,0x9f, + 0xae,0x9d,0x16,0xf1,0x37,0x5e,0xee,0x96,0x5a,0x9d,0xa2,0xac,0xe7,0x6d,0x6c,0xf3, + 0x88,0x8f,0xf4,0x01,0x90,0x22,0xfa,0x89,0xbe,0x8a,0x99,0xcd,0x50,0x34,0x5f,0x00, + 0xcc,0x4b,0x09,0x7e,0x46,0x89,0x11,0x23,0xc5,0x7a,0xab,0x99,0x41,0xfb,0x71,0x48, + 0xae,0x9c,0x92,0x7e,0x1c,0x70,0x6c,0x1c,0x16,0x44,0xd0,0x63,0x6f,0xec,0xd2,0xf3, + 0x3f,0xc2,0xf5,0x4f,0x84,0x85,0xe0,0x88,0x8a,0xfe,0x9d,0x5e,0x98,0x51,0x75,0xa4, + 0x22,0x3e,0x6b,0x61,0xa8,0x65,0x83,0x47,0x16,0xaa,0x7e,0x29,0x76,0x09,0x6e,0x29, + 0xc1,0x8a,0x46,0x15,0x3a,0x21,0x49,0x69,0x95,0x52,0xa8,0x39,0x75,0xb4,0x42,0xcd, + 0xaf,0xa1,0x16,0xf5,0xd9,0x05,0x7a,0x91,0xdb,0x6c,0x88,0xf4,0xde,0x38,0x6f,0xe2, + 0x78,0x64,0x3b,0x73,0x2f,0xf8,0x4c,0xbf,0x01,0xb5,0x0a,0xa3,0x67,0xc1,0x86,0xcb, + 0x11,0x96,0xd7,0x47,0x7b,0xe2,0x53,0x79,0x72,0x2b,0x46,0xa1,0x05,0xd9,0x1e,0xaf, + 0x86,0xa8,0xa9,0x82,0x58,0x65,0x3e,0xe5,0x18,0x79,0x2a,0xf0,0x81,0xe7,0x25,0xa6, + 0xe7,0xf8,0x6e,0x62,0xda,0xe4,0xa9,0x2c,0xd6,0x80,0x82,0x4c,0xa4,0xe4,0xc0,0x8b, + 0x45,0x46,0xf8,0x0f,0x7a,0x8d,0x53,0xd1,0x11,0xfd,0x4b,0xee,0xfa,0xf9,0xb1,0x8a, + 0xed,0xe1,0x01,0xe8,0x93,0xf0,0x8a,0x7a,0x2c,0xe0,0x95,0xcd,0xb7,0xf2,0x70,0x9d, + 0x1d,0x13,0xe7,0xaf,0x89,0x53,0x74,0x8e,0xec,0x74,0x63,0x27,0x1a,0x88,0x0f,0x29, + 0xa1,0x17,0x9b,0x76,0x43,0x8c,0xa8,0xe9,0x4d,0xef,0x30,0xe2,0x27,0x6e,0xad,0x2c, + 0x2c,0x09,0xc9,0x2f,0xea,0xeb,0x7c,0xc2,0x03,0x35,0x46,0xc7,0xb5,0x8d,0xb2,0x87, + 0xe4,0x4e,0x4c,0x20,0x39,0xe2,0x3d,0x05,0x5b,0x31,0xc0,0x57,0xc9,0xbf,0x9c,0xbe, + 0x43,0x6e,0x07,0x4c,0x11,0xa4,0x08,0xde,0x66,0xe6,0x52,0x44,0x7b,0x1c,0x00,0x89, + 0xea,0x3c,0x34,0x06,0x76,0xa4,0xd2,0xcf,0xb2,0xcd,0xc9,0xe0,0x51,0x89,0x1d,0xc7, + 0xa3,0xe0,0xf0,0xaa,0x20,0x42,0xe0,0xa5,0x6e,0x62,0x9c,0x35,0x11,0x27,0xcb,0xfb, + 0x85,0xd7,0x4b,0xdd,0xdd,0xd9,0x72,0x3d,0x98,0xbb,0xe8,0xd1,0x5e,0xed,0x07,0x15, + 0x1b,0x87,0x74,0x3c,0x1a,0x20,0x35,0xf1,0x6a,0x77,0xbd,0x1e,0x73,0x24,0xd9,0xee, + 0x36,0xa0,0xc9,0x83,0xf9,0x42,0xed,0xb7,0x30,0x5d,0x44,0xbf,0x47,0xf0,0x82,0x82, + 0xf5,0x41,0x9d,0x64,0xd4,0xe1,0x7b,0x37,0x1c,0xa4,0x5b,0x66,0x13,0x3c,0x71,0x34, + 0x1c,0x85,0xa1,0x26,0x30,0x8c,0x3c,0xb9,0x0c,0xaf,0x46,0x3b,0xff,0xfc,0xf4,0xf3, + 0x8e,0xc7,0x22,0x8e,0x97,0x52,0x9c,0x5e,0xe1,0x22,0xf7,0x2c,0xbc,0x32,0xa8,0x97, + 0xed,0x6d,0xfe,0x9e,0x8c,0x37,0x37,0x31,0x96,0x65,0x36,0x0f,0x50,0x8f,0x3c,0x62, + 0xe6,0xb4,0x8f,0xb3,0xd9,0xd1,0xcd,0x3b,0x96,0x63,0x38,0x1b,0x85,0xa5,0x2c,0x5b, + 0xa6,0x19,0x65,0xf7,0x3e,0x91,0x4e,0x7d,0xf1,0x6f,0x5c,0x6d,0xde,0xc6,0xbc,0x0c, + 0x3b,0x4c,0x07,0x2a,0xc3,0x35,0x54,0x20,0xc8,0xeb,0x73,0x42,0xbd,0x6b,0x88,0xd0, + 0xbc,0xc5,0x8e,0x12,0x9a,0x62,0x48,0xe5,0x3e,0x85,0x0d,0x43,0x78,0x15,0x16,0xa5, + 0x73,0x94,0x7d,0x3f,0xfd,0xac,0x0f,0x64,0xc7,0x79,0x54,0xe3,0x7f,0x02,0x45,0x69, + 0x85,0xb1,0x71,0x74,0x31,0x30,0xbf,0x1e,0xfd,0x96,0x7c,0xbf,0xe3,0x99,0xcc,0x99, + 0x64,0xb4,0x3d,0x0e,0x7d,0x76,0x63,0xc7,0xc1,0xaa,0x0b,0x06,0xca,0x44,0x0c,0xb9, + 0xff,0x41,0xbd,0xc0,0xa8,0x06,0x0a,0x92,0xd2,0xaa,0x08,0x77,0x08,0x5e,0x21,0x1d, + 0xc5,0xae,0x94,0x63,0x2d,0x67,0xfc,0x12,0xb6,0x75,0xe2,0xc2,0x1e,0x27,0xa5,0x52, + 0x57,0x8e,0x99,0xe3,0x4c,0xc2,0xda,0x50,0x5d,0x93,0x59,0xde,0x94,0x44,0xfa,0x98, + 0xa3,0xab,0x4b,0x96,0xa1,0x2e,0x7a,0x1d,0xa1,0xcf,0x56,0xbf,0xd4,0xcc,0x19,0x93, + 0xfa,0x47,0x9a,0x29,0x30,0x04,0xa5,0x29,0xd4,0xf3,0xc5,0xbb,0x6b,0x31,0xc7,0x44, + 0xf3,0x22,0x74,0xaa,0x3f,0x97,0x6f,0x83,0xe2,0xb1,0xa1,0xeb,0x14,0xfd,0xdd,0xd1, + 0x17,0x09,0x9f,0xe4,0x93,0xcf,0x8a,0x22,0x29,0x13,0xb1,0xe2,0xf1,0x44,0xea,0x4e, + 0xbb,0x66,0x8f,0x16,0xed,0x06,0x14,0x11,0x7a,0x5d,0x80,0xc1,0x91,0x58,0xda,0xa9, + 0x2b,0x48,0x20,0x47,0xc0,0x8b,0xd0,0xcb,0x0c,0x5f,0x6b,0xf0,0xed,0x28,0x0d,0x23, + 0x3e,0x07,0xb3,0x53,0x19,0x50,0xcf,0xc4,0x7e,0xc5,0x23,0x8b,0xf4,0x5c,0x39,0x77, + 0x42,0x3e,0xfa,0x0d,0x70,0x2c,0x0c,0x9e,0x3c,0xf7,0xe9,0xe5,0x03,0x14,0x06,0x6e, + 0xbc,0x74,0x96,0x3d,0x64,0xfa,0x83,0xac,0x9e,0x35,0xaa,0x01,0x1e,0x82,0x2e,0x4d, + 0x25,0x40,0x9b,0x53,0x4a,0x00,0x76,0xc7,0x77,0x26,0xbd,0x24,0xa8,0xd9,0x18,0x35, + 0xc3,0xa4,0x29,0x47,0xb6,0x17,0x73,0xa3,0xf2,0xcd,0x54,0xc0,0xb1,0x20,0xf5,0xd2, + 0xbb,0xe2,0x00,0x8b,0x2b,0xf4,0xd8,0x00,0x09,0xd2,0xc8,0x70,0x34,0xb1,0x66,0xda, + 0xd4,0xb7,0x2f,0x2d,0xed,0x1d,0x0c,0x4b,0x02,0x19,0x5f,0x4f,0x99,0xdc,0x61,0x6d, + 0xa0,0x38,0xdc,0xac,0xa5,0xfd,0x82,0xa0,0xa2,0x1b,0x15,0xd8,0x96,0xa8,0x6c,0xf2, + 0x28,0xc3,0x60,0xe2,0x0e,0xf9,0x9e,0xc3,0x0d,0x3a,0xfb,0xc5,0xd9,0x32,0x2c,0x12, + 0x92,0xfc,0xb3,0x4e,0xc5,0x3b,0x19,0x74,0x0b,0x62,0xbd,0x61,0x52,0x04,0x44,0xb1, + 0x3b,0x0a,0x2b,0x5c,0x5a,0x4c,0x82,0x59,0xb6,0x94,0xd4,0xae,0xcd,0xd0,0xe6,0x87, + 0x1d,0xdb,0xb0,0x65,0xbd,0x4b,0xba,0x8f,0x21,0x97,0xd9,0xdc,0x60,0x49,0xac,0x61, + 0xad,0x8f,0xf4,0xca,0x2a,0x8a,0x31,0x5d,0x7c,0xfa,0xf9,0x2b,0x71,0x65,0xf1,0xb6, + 0x82,0x3e,0x68,0x58,0x0d,0xb5,0x09,0x09,0xef,0xa6,0x26,0xf4,0x33,0x31,0xc9,0xa6, + 0x12,0x66,0xb6,0x85,0x4c,0x4e,0x3c,0x43,0x58,0x38,0x78,0x07,0x4f,0x95,0x86,0x54, + 0xc1,0xf5,0x2c,0x6b,0x49,0x17,0xde,0xeb,0xec,0xaf,0x75,0x16,0x4e,0x53,0xf6,0xba, + 0x7f,0x82,0xba,0x53,0xe5,0xea,0xab,0x54,0x98,0xce,0x6e,0x6d,0x0d,0x60,0xae,0xaf, + 0x7a,0x9d,0xf5,0x39,0x31,0xf0,0xe0,0x55,0x02,0x5b,0x3d,0x27,0x2e,0x0b,0xd3,0xe5, + 0x89,0x2f,0x45,0xb4,0x33,0x3c,0x42,0xd3,0x38,0xf2,0x07,0x9f,0x15,0x25,0x84,0x7d, + 0xf8,0x48,0xcc,0xc4,0x0f,0xc7,0x63,0x97,0xce,0xb4,0x99,0x19,0x93,0xa5,0x27,0xd9, + 0x58,0xeb,0xb2,0x49,0x76,0x89,0xe4,0x4f,0xdf,0xd2,0xe0,0x0b,0xb6,0x0d,0x57,0x35, + 0x38,0x93,0x0d,0x09,0xc5,0x73,0x53,0x85,0x75,0x5f,0x71,0x24,0x03,0x2c,0xa9,0x5c, + 0xf8,0x56,0xb2,0x4b,0xb7,0x1d,0x28,0xb2,0x9c,0xbc,0xea,0xc0,0x11,0xf5,0x6a,0xae, + 0x75,0x2b,0x0d,0x51,0xcb,0xab,0x6f,0x4c,0xc8,0x2b,0xd7,0xcf,0x5a,0xca,0xcb,0xbe, + 0xea,0x78,0x8d,0x3f,0x75,0xe5,0x83,0x5f,0xd3,0xc8,0xef,0x4e,0x5f,0x88,0xdb,0x18, + 0x74,0x3b,0xc9,0x94,0x1f,0xe3,0x9b,0xec,0x67,0x32,0xcd,0x7e,0x4e,0xe2,0xaf,0xaa, + 0x0b,0x52,0xf1,0xf6,0x86,0x7a,0xad,0x99,0x57,0xc5,0x75,0xc5,0x55,0x9f,0x5a,0x37, + 0xe1,0xcd,0xcd,0xec,0x7a,0x76,0xf1,0xe6,0xb3,0xa9,0xb4,0x24,0x40,0x90,0x35,0x65, + 0x34,0xdc,0x95,0x26,0x35,0x0f,0x7f,0x7e,0x26,0xeb,0x69,0x2b,0xab,0x70,0x54,0x2c, + 0x39,0x50,0xdb,0x56,0x7c,0xdc,0xd6,0xbc,0x0a,0xc3,0xae,0x12,0xce,0xed,0x68,0x89, + 0xd0,0x1a,0x74,0xcc,0xf1,0xcd,0xa0,0x6b,0x26,0xd3,0x41,0xcf,0x9c,0xc4,0x83,0xfe, + 0x43,0xc9,0xb9,0x16,0xa5,0x0e,0x01,0xfc,0x7c,0x70,0x17,0x50,0xff,0xeb,0xca,0xc8, + 0x01,0xf9,0x6c,0x85,0xbd,0xf4,0xdf,0x79,0x01,0x66,0xd5,0x1d,0x91,0xda,0xe8,0x6d, + 0xc5,0x50,0x2b,0x59,0x6c,0xbb,0x42,0x90,0x8c,0xd1,0x12,0x3d,0xb8,0x07,0xd2,0x63, + 0x97,0x2f,0x26,0x26,0xf8,0x48,0x8a,0x74,0x85,0x86,0xdf,0x0f,0x7c,0xa1,0xac,0xec, + 0x28,0x2e,0x03,0x14,0xb0,0x80,0x94,0x7b,0xfd,0xaa,0x24,0x3a,0x0b,0x8b,0x52,0x31, + 0x64,0x89,0xbb,0x63,0xd5,0x56,0x47,0xb2,0x5d,0xa3,0x36,0x9b,0xad,0xf5,0x8d,0x24, + 0xff,0xcf,0x37,0x59,0x1f,0x57,0x53,0xb0,0xa0,0xb7,0xac,0xa2,0x02,0xb7,0x26,0x15, + 0x56,0x52,0xcd,0x8d,0x3a,0x28,0x9f,0x70,0x1c,0x53,0x9c,0x63,0x0e,0xf5,0xe1,0xc6, + 0x23,0x21,0xa9,0x73,0x03,0x01,0x6b,0x5e,0x58,0xb4,0x36,0x98,0xe4,0x53,0x4e,0x3f, + 0x5a,0xd2,0x93,0x8b,0xad,0xf6,0xb9,0xcd,0xfe,0x3b,0xd9,0x85,0x26,0x0b,0x54,0xf7, + 0xd9,0xad,0xb1,0xbc,0xad,0xd9,0x1b,0x50,0xd8,0xbc,0x05,0x90,0x8e,0xe9,0x50,0xe8, + 0x42,0x5e,0xa2,0x60,0xbf,0x11,0x0e,0xab,0x02,0x7f,0xf8,0x29,0x60,0x93,0x67,0x57, + 0x6d,0x3b,0x65,0xb3,0x43,0xda,0xd6,0xb7,0xd3,0x66,0x4d,0x24,0x85,0x75,0xc8,0xcf, + 0x5f,0x52,0x79,0xb3,0x56,0x49,0xa2,0x70,0xab,0xd4,0x95,0xc1,0xcf,0xfc,0xe1,0xef, + 0x96,0xb0,0x4f,0x00,0x89,0x89,0x64,0x42,0x63,0x18,0x51,0xd9,0xa3,0x0c,0x23,0x6a, + 0x96,0x5a,0xe7,0xd0,0xa2,0x35,0xdd,0x52,0x06,0x2f,0xb8,0xef,0xb5,0xca,0x27,0x2a, + 0xd3,0x79,0xfa,0x25,0xc2,0xe0,0xcc,0x74,0x3a,0xac,0x86,0xf7,0x4f,0x76,0x0e,0xf6, + 0x51,0xe1,0x37,0x67,0x85,0xd4,0xff,0xa0,0xd4,0x9d,0x3e,0x3e,0x65,0x63,0xce,0x8b, + 0x59,0x98,0xb8,0xb3,0xdf,0xc9,0x5d,0x50,0x9d,0xc3,0xce,0x91,0xb3,0xad,0x3b,0x9a, + 0xbe,0x3d,0xdb,0xd6,0x67,0xfa,0xa0,0x35,0x83,0x14,0xfc,0x09,0x29,0xf3,0x6d,0x7d, + 0xae,0x0f,0xe8,0xdf,0xc2,0xc3,0x34,0x80,0xc1,0x2d,0xcf,0x1c,0x9b,0xd9,0xcb,0x38, + 0x5b,0xe5,0x17,0x91,0xd1,0xcb,0xf2,0x50,0xf8,0x80,0x78,0xe8,0x14,0xb2,0xb5,0x3d, + 0x66,0x7f,0x90,0xad,0xed,0x56,0x72,0xb4,0xa5,0xbd,0x4a,0xe0,0x17,0xbb,0x71,0x94, + 0xdc,0x3f,0xd5,0x43,0x14,0x65,0x21,0x96,0xea,0x1a,0xa0,0x5c,0x24,0x7f,0x27,0x1c, + 0x7c,0x8c,0x9f,0x5c,0xc2,0x27,0x7f,0xde,0x89,0xb0,0x59,0xad,0xac,0x94,0xd9,0xef, + 0x14,0x9f,0xf5,0x51,0xda,0x5a,0xf2,0x56,0xcf,0x9b,0x00,0x05,0x95,0x2f,0x6d,0x89, + 0x56,0x8a,0x99,0xa5,0xee,0x3a,0x0f,0x25,0xe3,0x9a,0x6c,0xb5,0x14,0x6e,0xbb,0x3e, + 0xda,0x36,0xc5,0x42,0xae,0x31,0x04,0x71,0xb8,0x75,0xf9,0x88,0x75,0x25,0x9e,0xa7, + 0x2f,0x9e,0x5b,0xb7,0x2c,0x4b,0x2f,0xda,0x74,0x9b,0xea,0x88,0x13,0xc4,0xab,0xf1, + 0x48,0xb9,0x7a,0x97,0x58,0xf8,0x2e,0xd5,0x37,0xe0,0x22,0xee,0x0e,0x3e,0xaa,0x2e, + 0x83,0xc5,0xd3,0x2b,0xd6,0x6a,0x8c,0xf2,0x0d,0x5a,0x70,0xfd,0x4b,0x84,0xc6,0x2f, + 0xa0,0x17,0x8c,0x90,0xd6,0x22,0xe2,0x78,0xd7,0x86,0xb1,0x2d,0x4a,0xfc,0xc0,0xcf, + 0x9c,0xe3,0x63,0x3c,0x16,0x3e,0x79,0xfe,0x6d,0x7e,0xbd,0x83,0x17,0xfc,0x60,0x34, + 0xe1,0x5b,0xef,0xd6,0x75,0x5a,0x3d,0xc3,0xd4,0xff,0xa1,0x67,0x15,0xb2,0x57,0xb0, + 0x81,0x43,0x8e,0x4d,0xfd,0xe7,0x1f,0xb4,0xef,0xf1,0x99,0x7b,0x40,0xbd,0xea,0x38, + 0x21,0x9d,0x87,0x99,0xd5,0xfe,0x60,0xdf,0x6a,0xb6,0xef,0x87,0x13,0xdd,0xac,0x29, + 0x8e,0xf1,0x07,0x31,0x93,0x2b,0x61,0xe3,0x79,0xbf,0xca,0xc3,0xd9,0xba,0x99,0x58, + 0xf4,0x2e,0x97,0xa9,0x3b,0x3f,0xcc,0xf3,0x22,0xef,0x81,0x5a,0x6b,0xa7,0x67,0x67, + 0xef,0xb0,0x40,0x0c,0xba,0x12,0xe5,0xc3,0xf8,0xce,0x3e,0x9e,0x52,0xfc,0xeb,0x24, + 0x88,0xb3,0xc2,0xc7,0xc0,0xe5,0x01,0x16,0xda,0xf9,0xaf,0x39,0x78,0x6c,0x4e,0x53, + 0xe1,0x23,0x8b,0x9d,0x2a,0xc5,0x62,0x18,0x66,0xb5,0x24,0xf3,0xec,0x84,0x4a,0x42, + 0x19,0x77,0x72,0x6d,0xe2,0x09,0x25,0x75,0x0c,0x35,0xe0,0x67,0xa5,0xe8,0x39,0x15, + 0x4d,0x60,0xbd,0x73,0xf0,0x62,0xb0,0x42,0x68,0x63,0xe7,0x3c,0x6b,0xe6,0x1b,0x05, + 0x30,0xdc,0xd6,0xb5,0x1d,0x9e,0x04,0x14,0xe7,0xa4,0xac,0xd2,0x6b,0x0f,0xbd,0xba, + 0x4b,0xb5,0x1c,0x4a,0x2c,0x56,0xe3,0xb4,0xac,0xde,0xf9,0xaf,0xda,0xef,0x0b,0x77, + 0xe1,0x62,0x9d,0xf4,0xf6,0x1b,0xfd,0x86,0x4c,0xe5,0x5a,0xf7,0x91,0x58,0x36,0x7c, + 0x3d,0x3c,0x2b,0x8a,0xc4,0x5e,0x14,0xa6,0xc7,0x45,0x44,0x6b,0xa4,0xe6,0x4a,0xf0, + 0x93,0x9a,0x97,0xad,0x41,0x5e,0xe8,0xdd,0x67,0xcc,0xf5,0xa2,0xfb,0x7b,0xbd,0x8d, + 0xa4,0x95,0xfc,0xeb,0xb1,0x3f,0x24,0xc7,0x88,0x05,0x80,0x55,0x40,0x2c,0xd4,0x54, + 0x5e,0x6a,0xb1,0xe4,0x28,0xf0,0xe2,0x03,0xe9,0x24,0x39,0x29,0x4f,0xae,0x1b,0xa6, + 0xda,0x08,0xec,0xf9,0x52,0x21,0x7e,0x4f,0x3d,0x2f,0x25,0x1b,0x2b,0x5d,0x62,0x67, + 0xc1,0xdc,0x1f,0x25,0x79,0x0c,0xd9,0x61,0xb6,0x4f,0xa5,0x98,0xa6,0xec,0xb3,0xc4, + 0x17,0x87,0x87,0x47,0x89,0x5f,0xf4,0x67,0xbf,0x95,0x4f,0x52,0x8d,0x5a,0xb7,0xe4, + 0x4c,0xc9,0x97,0x46,0x0c,0xbc,0x35,0x52,0xa0,0xbd,0x57,0xd7,0x44,0x79,0x99,0xe8, + 0x16,0x5e,0x09,0x14,0x6f,0xfa,0x01,0x67,0xa8,0x79,0x22,0x54,0xf8,0xc0,0x68,0x5b, + 0x1b,0xe4,0x4d,0x28,0xfb,0x60,0xbf,0xd7,0xc0,0xd5,0x5a,0x65,0xef,0x57,0xa3,0xe0, + 0xfe,0xca,0xe5,0x0d,0xa3,0xe0,0xf1,0x27,0x8e,0xe5,0xf1,0xcd,0xc0,0x04,0x87,0x1d, + 0x5e,0xf1,0xa0,0xef,0xef,0x6f,0x31,0xdc,0xb1,0x32,0x03,0x8c,0xfc,0x81,0xf9,0x80, + 0x5e,0xe1,0x15,0x61,0x18,0x95,0x80,0x4f,0x3c,0x94,0xaf,0xf5,0xa0,0x17,0xf3,0x14, + 0xae,0x86,0xb7,0x56,0x20,0xc2,0xd2,0xf3,0xe8,0x33,0x5f,0x48,0x62,0x3d,0x45,0x2f, + 0x72,0xcf,0xf7,0xb5,0x2d,0x51,0x8e,0x48,0xaf,0xe2,0x45,0x99,0xa7,0x08,0x2f,0xf3, + 0xad,0x6d,0x1e,0x7f,0x61,0x62,0xdb,0xd3,0x82,0x87,0xff,0x00,0xa8,0x89,0xc6,0x4e, + 0x4a,0xf9,0x5b,0x14,0x32,0x14,0xc5,0x1a,0xf2,0x34,0xa1,0xa7,0x8d,0xb1,0x05,0x6d, + 0xbe,0x20,0x72,0x4d,0x22,0x96,0x2d,0x70,0xe1,0x10,0xb8,0xb5,0x6d,0x25,0x33,0x0f, + 0x15,0x75,0x95,0x85,0x11,0x4e,0x02,0x5d,0x40,0x51,0x42,0xa0,0x87,0x13,0xc5,0x23, + 0xf1,0xba,0x10,0x1b,0x96,0x3e,0x03,0xd1,0xf5,0x4f,0xf1,0xf8,0xe4,0xfe,0xbe,0x8b, + 0x41,0x90,0xaf,0x51,0x38,0x84,0xcd,0xfb,0x0b,0x06,0xce,0x00,0xb9,0x61,0x6f,0x7f, + 0xb8,0x01,0x89,0x14,0x47,0x63,0x74,0xf3,0x3d,0x34,0x30,0x84,0x4f,0x7e,0x69,0x73, + 0x34,0xa3,0x6f,0x6a,0xf9,0x12,0xab,0x5e,0xba,0xcc,0x51,0x60,0xc5,0xf5,0x1e,0x1e, + 0x81,0x5e,0x5a,0x09,0xfa,0x04,0xb4,0xa0,0x98,0x09,0xff,0x61,0x02,0xf1,0xce,0x53, + 0xa0,0x0b,0x2d,0x3c,0xd9,0xbb,0x31,0x67,0x22,0x54,0x1a,0x0c,0x52,0x4c,0xe8,0x55, + 0xaf,0xe8,0x4a,0x1e,0x30,0x4f,0x02,0xf2,0x6e,0x51,0x58,0x7e,0x3e,0x1d,0xa2,0x59, + 0x99,0xf3,0x5b,0x91,0x89,0xe1,0x66,0x4b,0x99,0x7c,0x39,0x07,0xe5,0xc7,0x79,0x60, + 0x2c,0xe7,0xb7,0xdb,0xa0,0x4a,0xcd,0x83,0xf6,0xa8,0xfb,0xb0,0x71,0x89,0x91,0xc5, + 0xc3,0x2b,0xf7,0x8c,0xf0,0x9f,0x86,0x3d,0x8f,0x16,0xa9,0xeb,0x50,0x42,0xfe,0x32, + 0xa1,0xfc,0x21,0x5c,0x45,0x0c,0x9c,0xa1,0x8c,0x9f,0xc8,0xb1,0xaf,0xf4,0x76,0xdb, + 0x9e,0x4c,0x74,0x79,0x2b,0x0b,0x08,0xcd,0xf3,0xde,0xf8,0x85,0xe3,0xbe,0x84,0xd5, + 0xbd,0xb4,0xf0,0x11,0x60,0x82,0xe4,0xa8,0x37,0xe4,0xaf,0xff,0x04,0xa4,0x18,0xe9, + 0xc4,0x88,0x74,0x48,0x1a,0xbb,0x97,0x5e,0xf0,0x19,0x66,0x40,0x72,0x23,0xc2,0xa0, + 0x22,0xbf,0x5e,0x9b,0xf2,0x46,0xcb,0xed,0xc8,0xdb,0x51,0x01,0xd5,0xee,0x1a,0xdf, + 0xb7,0x6e,0xda,0xbb,0xc6,0x76,0xcf,0xbc,0x1b,0xcd,0xda,0xbb,0xed,0xd6,0x75,0x1b, + 0xe6,0xba,0x03,0xb3,0xc6,0xbf,0xdf,0xb7,0xa0,0x08,0x8a,0x72,0xde,0x11,0x77,0x7e, + 0x1e,0xb6,0x6e,0xcd,0x3b,0x63,0x70,0x69,0xa1,0xd9,0x41,0x7c,0xb1,0x34,0x29,0x21, + 0xd2,0xa2,0xdf,0xb0,0x5b,0x7d,0x01,0x1b,0x15,0x52,0x30,0x60,0x24,0x15,0x23,0x1d, + 0xdf,0x94,0xd5,0x92,0x3b,0xd0,0x13,0xe6,0xed,0x85,0x87,0x13,0xc1,0x45,0x3f,0xc6, + 0x17,0x68,0x61,0x72,0x88,0x1b,0xba,0x6c,0x86,0xf6,0x3f,0x0e,0xfa,0xa2,0x30,0xf2, + 0xaf,0xe6,0x4d,0xbb,0xc7,0x97,0xc1,0x14,0x9c,0xc5,0xdb,0xce,0x3f,0xbb,0x77,0xf4, + 0x72,0x44,0x8b,0xf5,0x8b,0xdc,0x71,0x8d,0xbf,0x37,0x37,0x9b,0xde,0x34,0x14,0xe5, + 0x87,0x59,0x7c,0x84,0xb1,0xbf,0x88,0xa5,0xf7,0x8f,0xed,0xe6,0x27,0x23,0xfc,0x30, + 0x87,0xa8,0x4a,0x58,0x62,0xbb,0x9b,0x9b,0x36,0xaa,0x62,0x05,0xd1,0x1d,0xd3,0xa8, + 0x11,0x43,0xfc,0x2d,0x9d,0x95,0xa2,0xf1,0x94,0x1f,0xfb,0x96,0x23,0xc5,0x2b,0x6d, + 0xf4,0x9b,0xee,0x16,0x83,0xa6,0x4d,0x77,0xfc,0x29,0x46,0x40,0xf1,0x69,0x4e,0x71, + 0x6a,0x83,0xb2,0x62,0xf6,0xd0,0xe7,0x48,0x86,0x22,0x28,0x9f,0xe4,0xd4,0xcf,0xd3, + 0xa4,0xf7,0xd4,0xe9,0x1e,0xb9,0xf2,0xbc,0xba,0x7c,0xda,0x6a,0xe4,0xfa,0x85,0x5b, + 0xd4,0xf9,0x2d,0x83,0xe9,0xe6,0xe6,0xd4,0x42,0x17,0x9d,0x20,0xfd,0x18,0x3a,0xae, + 0xa1,0x7e,0x00,0xaf,0x01,0x42,0x95,0xfe,0xe0,0x02,0x16,0xba,0x2d,0x6a,0xd1,0x44, + 0x1f,0xd0,0xdb,0xf4,0xcc,0x23,0x3b,0x36,0xb9,0x7a,0x05,0xb5,0x36,0x2c,0x71,0xd9, + 0x96,0xb3,0x6b,0x9e,0x61,0x14,0x57,0x93,0xcc,0xfc,0xbd,0x46,0x69,0x8e,0xc0,0xd1, + 0xf3,0xc1,0x5f,0x4d,0x35,0xf7,0x16,0x5a,0xc4,0xeb,0x14,0x66,0x15,0xb2,0xd5,0x27, + 0x20,0x33,0x33,0xc8,0x93,0xdb,0xa4,0x5a,0xf5,0x8d,0xd6,0x61,0x65,0xd3,0xf3,0x7f, + 0x75,0x65,0x1f,0xcc,0xee,0x5e,0x87,0x6c,0x67,0xf2,0x75,0x78,0x76,0x99,0x50,0x63, + 0xde,0xe7,0x0f,0xb8,0x0b,0x3f,0x16,0x65,0x49,0x57,0x3e,0xba,0xa4,0x96,0x5b,0x05, + 0x75,0x9a,0xd4,0xd3,0x81,0xfe,0xe7,0x41,0x9b,0xd7,0x2c,0xbc,0xbe,0x2a,0x51,0x3e, + 0x57,0x96,0xe4,0xd7,0xa8,0x93,0x6d,0x08,0x0a,0x34,0x84,0xc7,0xb0,0x15,0x5d,0x8f, + 0xa0,0x17,0xc6,0x13,0xb4,0xc1,0x3c,0xa1,0xdd,0x52,0x04,0xa5,0xac,0x0f,0x05,0x88, + 0x18,0xda,0xaa,0x7e,0x4e,0xe3,0x45,0x72,0x57,0x82,0xa0,0x5a,0x23,0x97,0xcf,0xb6, + 0xd4,0xb7,0xe8,0xab,0x8f,0x72,0x8b,0x27,0xe0,0x07,0xdd,0x03,0x7a,0x15,0xba,0xf2, + 0xa4,0x75,0xe9,0xea,0xda,0x90,0x3c,0x61,0xf2,0x19,0x1f,0x09,0x6d,0x11,0x12,0x8e, + 0x62,0x17,0xff,0x8c,0xba,0x80,0xa6,0x59,0xa2,0x6e,0xd2,0x0c,0x4b,0x97,0x5a,0xec, + 0x38,0x69,0xa1,0x64,0xcc,0xe6,0x81,0x60,0x84,0xbf,0x0f,0xdb,0x7b,0x7b,0x47,0xbb, + 0x03,0xfe,0xb9,0xff,0xe2,0xa8,0x2f,0x7e,0xbe,0x38,0x38,0xea,0x0d,0xba,0x14,0x94, + 0x28,0xac,0xbb,0xd3,0xb2,0x4b,0xd6,0xc7,0x10,0x6f,0x7f,0xa8,0x0f,0xcc,0x3b,0x5e, + 0x12,0xf9,0xf6,0xdd,0xc0,0x0b,0xe8,0xd1,0xfb,0x31,0xbe,0x53,0x3e,0x14,0xef,0x72, + 0x47,0xb7,0xf2,0x2d,0x72,0x62,0x0b,0x83,0x2e,0x24,0x8c,0xc3,0xd8,0x71,0x63,0x7a, + 0x1c,0x6b,0x91,0x50,0x8a,0x78,0xb9,0x1b,0x54,0xff,0xfe,0xb6,0xf7,0x7d,0x1f,0xe4, + 0x2b,0x2c,0x06,0x7a,0xcb,0x25,0x71,0x4a,0xcc,0x80,0xee,0x83,0x23,0x9d,0x65,0x52, + 0xe0,0xb8,0x20,0x5f,0x8a,0x0f,0xec,0xd3,0xd0,0x49,0x48,0x93,0x42,0x59,0x2e,0x11, + 0xae,0x18,0xe6,0xd4,0x77,0x6f,0x87,0xb4,0x3e,0x6d,0x0f,0xf8,0x58,0x32,0xc0,0x84, + 0x36,0xa8,0xd8,0x72,0x34,0xdd,0x3d,0x5c,0xa6,0xad,0xed,0x70,0x5b,0x17,0x0d,0xeb, + 0x65,0x5d,0x1e,0xd7,0x66,0x11,0xfb,0x02,0xf0,0xe5,0xa0,0x59,0x19,0x96,0x65,0xf2, + 0x0c,0xea,0xfc,0x50,0xbe,0xc1,0x2d,0x64,0x65,0xd5,0xa2,0x4f,0x08,0xe6,0x07,0xc2, + 0x29,0x44,0x45,0xf5,0xe6,0x53,0x22,0x1a,0x6b,0x15,0x59,0x88,0x36,0x75,0x8a,0x1e, + 0x86,0x01,0x3e,0x3b,0x04,0xbd,0x89,0x83,0x42,0xe9,0x55,0x41,0xe2,0x7c,0xde,0x6c, + 0x90,0x3d,0xaf,0x12,0x90,0x63,0x15,0x4a,0x11,0x58,0xb3,0xce,0x3b,0x55,0x14,0x1c, + 0x93,0x9e,0xdc,0xb6,0xe9,0x4f,0x76,0x30,0xe1,0xba,0x01,0x9e,0xc6,0x53,0xaf,0xd4, + 0x40,0x4d,0x4f,0xa8,0x38,0x41,0xb9,0x0b,0xee,0xea,0x6b,0x31,0x06,0x99,0x9a,0x03, + 0x88,0xaa,0x04,0x62,0x7a,0x30,0x9e,0xb2,0xc1,0x0b,0xa4,0xae,0x7e,0x87,0xd3,0xf8, + 0x84,0x0e,0x46,0xbf,0x0b,0x5a,0x58,0xa0,0xdc,0x2a,0x5e,0x75,0xc9,0x15,0x6a,0xca, + 0xeb,0x52,0x18,0xcf,0x59,0xdc,0xd9,0xe2,0x19,0x18,0xd9,0x5d,0x6b,0xe1,0x76,0x96, + 0x67,0x67,0xa1,0xf9,0x75,0x5d,0xe8,0x24,0xb4,0xbb,0x03,0x02,0xa7,0x51,0xbe,0x0e, + 0x9b,0x24,0x52,0x6b,0x91,0x0d,0x67,0x68,0xbc,0x0d,0x49,0x6e,0x30,0x39,0xd2,0x37, + 0x9f,0x77,0x7b,0x07,0xbd,0x17,0xbb,0x43,0x7e,0xb7,0x53,0x7f,0x95,0xcc,0x6d,0xdf, + 0x3f,0x9c,0xcc,0x84,0xa6,0xa4,0xf6,0x79,0x44,0xcf,0x25,0x67,0xcf,0xd0,0xe9,0xdb, + 0xdc,0x2f,0xb5,0x4a,0xb5,0xb2,0x9b,0xb9,0x7a,0x51,0xfd,0xd9,0xca,0xdf,0x96,0x2f, + 0x2b,0x96,0x39,0x49,0xec,0xd1,0x63,0xf7,0xa1,0x3c,0x9c,0x4e,0xb4,0x29,0x6e,0x7c, + 0x0b,0x9f,0x92,0xdf,0xaa,0x3f,0x75,0x78,0x74,0xc7,0xfc,0xad,0x0b,0xbf,0xfe,0x24, + 0x70,0xa3,0x09,0x3f,0x33,0x1e,0x7e,0xd9,0x72,0xbf,0x22,0xe4,0x93,0xb8,0x98,0x41, + 0x02,0x17,0x2e,0xd9,0x52,0xba,0x08,0xbe,0x73,0x46,0x75,0xe2,0x8f,0x7c,0x23,0x91, + 0xde,0x86,0xa8,0x95,0x65,0xf0,0x67,0x5e,0x44,0xda,0xf9,0xe0,0x63,0x44,0xad,0x36, + 0x4b,0xd3,0x94,0x2d,0x8e,0xe2,0xe0,0xb7,0x4a,0x87,0xe4,0xf0,0x46,0x8d,0xd1,0xbe, + 0xd9,0xce,0xd1,0x10,0x48,0x67,0x73,0x13,0xda,0x13,0x47,0x64,0x22,0x96,0xfa,0xe3, + 0x51,0xb4,0xf2,0x2a,0x79,0xa4,0x72,0x25,0x28,0x34,0x1d,0x5c,0xf0,0xeb,0xc2,0xd7, + 0xe4,0xd3,0x2f,0xa2,0x7e,0x2d,0xc7,0x8b,0xf1,0xd8,0x77,0x93,0x81,0xa4,0x06,0x6a, + 0xf9,0xda,0x60,0x3e,0xd2,0x4b,0x1a,0xfa,0x43,0x86,0x81,0x58,0xc7,0x4d,0xaa,0x35, + 0x95,0xb7,0x9c,0x85,0x0f,0x6e,0x36,0xbe,0x67,0x4a,0xc4,0x75,0x59,0xe2,0xd1,0xe0, + 0xe7,0xf9,0xec,0xe4,0x0a,0x11,0x92,0xac,0x3d,0xab,0xbc,0xf4,0xd3,0xe6,0x94,0xd7, + 0xcb,0x0e,0x83,0x54,0xf4,0xff,0xab,0x27,0x42,0xc8,0x41,0x2a,0xe7,0x41,0x8f,0x68, + 0x37,0x05,0x95,0x28,0x63,0x11,0xec,0xe9,0xa4,0x9c,0xd0,0xd0,0xe3,0x28,0x1b,0x2b, + 0xb6,0x52,0xa1,0x1d,0x53,0xb6,0x60,0x28,0xc7,0xb3,0x32,0x8d,0x92,0x8a,0x70,0x79, + 0x14,0xe4,0xf2,0x4e,0x89,0x20,0xd1,0x22,0x8a,0x72,0x3e,0x3c,0x91,0xc1,0xfb,0x27, + 0x7b,0x15,0xb8,0xdf,0x7b,0xb1,0x7f,0x60,0x6c,0x6e,0x8a,0x5c,0x0a,0xab,0x2c,0x7e, + 0xbf,0x1a,0x75,0xfb,0x9b,0x9b,0xca,0x51,0x8c,0x6c,0x01,0x4f,0x14,0xc5,0xcf,0x52, + 0x00,0xb7,0x92,0x77,0x72,0xfd,0x6d,0x1d,0x94,0x4a,0x26,0xb3,0x52,0x30,0x47,0x39, + 0x38,0xc8,0x78,0xea,0xbc,0x05,0x31,0x53,0xf4,0x95,0xfc,0x46,0x77,0x21,0xf2,0xd8, + 0xe8,0x62,0x63,0x99,0x0e,0xf4,0x2f,0x67,0xc7,0x3b,0x27,0x76,0x60,0x3b,0xb6,0xd6, + 0x42,0x57,0xa4,0x39,0x2c,0x34,0x99,0x07,0xcd,0xe9,0x40,0x7f,0xd9,0xed,0x58,0x7b, + 0xbd,0x3d,0x1d,0x8f,0xd4,0xf5,0xfd,0x9e,0x05,0xbf,0x12,0x48,0x7e,0xa1,0xe3,0xc9, + 0xba,0xbe,0x87,0x6f,0xc1,0x61,0x1b,0xc7,0x8b,0x24,0x8d,0x41,0x52,0xb3,0x45,0xa5, + 0x3d,0xeb,0xa0,0xd3,0xe1,0x4a,0xbd,0xbd,0x0e,0xd7,0xe9,0x76,0x9a,0x2a,0x69,0xad, + 0x8f,0x76,0x1c,0x87,0x37,0xb2,0xcb,0x7d,0x6b,0xef,0x45,0x53,0x97,0x07,0x35,0xb5, + 0x3f,0x78,0xd9,0x68,0xf7,0xac,0x8e,0xac,0xda,0xed,0x89,0x9a,0x2f,0x9b,0xfa,0x1d, + 0x68,0x67,0xc7,0xa6,0xf6,0xcb,0x31,0xd7,0xed,0xf5,0xad,0x6e,0x75,0xa6,0x07,0x4d, + 0xdd,0x0e,0xb4,0xff,0xf9,0xfe,0xf5,0x1a,0x35,0xb3,0x6e,0x7f,0x88,0xed,0x3f,0x3c, + 0xff,0x29,0x7d,0xbd,0xf9,0xb2,0xf3,0xe5,0xe7,0x22,0x70,0x0e,0xf6,0x5f,0x5a,0xfb, + 0xdd,0x83,0x35,0x6b,0xbe,0x76,0x23,0x8c,0xc3,0x9b,0xca,0xd5,0xc4,0xda,0xd9,0x6a, + 0xe6,0x0b,0xd3,0x2d,0x8d,0xf4,0xe4,0x0f,0x17,0xe4,0x8b,0x53,0x37,0x5a,0x8c,0x81, + 0x98,0x54,0x07,0xb0,0xdb,0xef,0x3d,0x86,0x10,0x6f,0xbe,0x68,0xbb,0xfd,0xfe,0x87, + 0x9f,0xfe,0xd0,0x5a,0xef,0xc3,0xe0,0x52,0x3b,0x45,0xdf,0x31,0x6e,0x01,0xd2,0xad, + 0xfd,0xbd,0xce,0x63,0x83,0x50,0x5a,0x50,0xfb,0x2f,0xd4,0x6e,0x06,0xc0,0x47,0x17, + 0x6f,0x37,0xf8,0xa0,0xe8,0x26,0xab,0xe0,0x56,0x1e,0xf6,0x47,0xd8,0x5d,0xff,0xcb, + 0xb5,0xb1,0x9e,0x40,0xa8,0x17,0x56,0xff,0xc5,0xa3,0x00,0x53,0xaa,0x95,0x71,0x59, + 0xa9,0xdf,0xdc,0x2d,0xde,0x01,0x5f,0x5c,0xda,0x3e,0xce,0x38,0x9b,0x65,0x4d,0x3d, + 0x81,0xc9,0xfb,0x95,0x7a,0x07,0xfb,0x07,0x6b,0x4c,0x33,0xab,0x77,0x76,0xe3,0xa5, + 0x7f,0x30,0x78,0x9e,0x82,0x55,0xff,0xf0,0xdc,0x34,0xb0,0xe7,0xa5,0x29,0xf6,0x3a, + 0x56,0xaf,0x71,0x41,0xf6,0x2a,0x75,0xcb,0x38,0x59,0xa8,0x5f,0x07,0xe2,0x8d,0xaf, + 0xca,0x49,0x7a,0x31,0x16,0xe2,0x32,0x0f,0xe2,0xbc,0x22,0x82,0xb3,0x2a,0xd8,0x09, + 0xd7,0x26,0x52,0x79,0xd0,0x63,0x2e,0x00,0x0e,0x17,0x03,0x8e,0x4f,0xf8,0x4e,0xdc, + 0x40,0xe3,0x29,0x80,0xd0,0x83,0x7f,0x61,0x30,0x1a,0x8d,0x09,0xbe,0xe1,0x8f,0xd5, + 0xd1,0x49,0xd8,0xb2,0xef,0xef,0x33,0x6e,0xa9,0x29,0x0e,0xf0,0xb7,0x23,0x5b,0x71, + 0x5e,0x32,0xef,0x80,0x19,0xaa,0xbe,0x4c,0xc5,0x10,0x53,0xbb,0x32,0xc2,0x94,0xe0, + 0x4c,0xb7,0x17,0xde,0x57,0x8c,0x86,0x22,0x3e,0xef,0xf0,0xb3,0xd4,0x47,0x31,0x7e, + 0x6d,0x19,0x28,0xaf,0x29,0x88,0x44,0x11,0x26,0x1a,0xee,0x9f,0x4c,0x21,0xf8,0xe1, + 0x17,0x09,0xa2,0x3c,0xed,0xec,0xad,0x84,0x56,0x9e,0x76,0x72,0x5a,0x01,0xdc,0xcd, + 0x1f,0xe4,0xfa,0xf4,0xd6,0xa3,0x28,0x79,0x92,0xe5,0xab,0x21,0x32,0xcd,0xc9,0x22, + 0x2e,0x06,0xd8,0xe4,0x27,0x0b,0xb3,0x08,0x1c,0xe5,0x10,0x16,0x20,0x87,0x73,0xa0, + 0x08,0xf2,0x6b,0x8e,0xdd,0x4b,0xc8,0xdb,0x9c,0xb9,0xbe,0xef,0x45,0x43,0x35,0x9a, + 0x05,0x87,0x42,0x01,0x06,0x48,0x31,0xcc,0xd6,0x89,0x9d,0xb9,0xd1,0x1c,0x3c,0x13, + 0x06,0x69,0x18,0xdc,0x9a,0x97,0x07,0xca,0x28,0xc7,0xe7,0xf0,0xd4,0xa8,0x1c,0x29, + 0x68,0x72,0x00,0x1b,0xc7,0x4e,0x66,0x43,0x0c,0x18,0xa5,0x02,0x5b,0x0d,0xd6,0xc1, + 0x5c,0xb6,0xbe,0x49,0x0a,0xbd,0x79,0xf8,0x33,0x06,0x10,0x95,0xcf,0x62,0x4a,0xff, + 0xdf,0x42,0x38,0x11,0x0c,0x28,0x5b,0x0a,0x92,0x40,0x31,0xc8,0x60,0xbc,0x87,0xa3, + 0x8e,0x91,0x94,0x83,0x3e,0x53,0x4e,0x76,0x7b,0xb6,0xc5,0x4e,0x9a,0xe4,0x31,0x09, + 0x7f,0x45,0xe4,0x49,0x7a,0xe9,0x32,0x7b,0x7f,0x3c,0x6a,0xc3,0x00,0x8a,0xcf,0x97, + 0x9f,0xf0,0x88,0xfc,0xbb,0x81,0xf6,0x6a,0x7c,0xc8,0x6a,0xe5,0x84,0x1c,0x0f,0x8d, + 0x3a,0x0c,0xe2,0xec,0xf1,0x8d,0x51,0x46,0x23,0xce,0x48,0xa6,0x46,0x19,0x97,0x38, + 0x63,0x12,0x93,0x7e,0x0b,0x3d,0x6c,0x6c,0xf3,0xc0,0x5f,0x75,0x8e,0x74,0xad,0xe5, + 0x84,0x6e,0x12,0x6c,0xa5,0xbc,0xc6,0x9a,0x2d,0x30,0x01,0x88,0x1a,0x43,0xda,0xd0, + 0x39,0xf8,0x7f,0xb2,0x3a,0x7e,0x77,0x15,0x57,0x01,0xbb,0x44,0x94,0x98,0x9a,0x00, + 0xe7,0x22,0xc2,0x6c,0x06,0x50,0x93,0xf0,0x65,0x28,0x63,0x3e,0x63,0xc4,0x3e,0xfa, + 0x4b,0x0b,0x67,0x2c,0x29,0xb7,0x88,0xdd,0xc2,0xa1,0x94,0x23,0xd2,0x17,0xb0,0xf2, + 0x62,0xfb,0xfa,0xeb,0x90,0x6b,0x14,0xb1,0xef,0xe1,0x09,0xee,0x8c,0x7c,0xdf,0x9c, + 0x5a,0x51,0x69,0xca,0x9f,0xf2,0x72,0x8c,0x72,0x07,0xc7,0x8d,0x55,0x1e,0x8e,0xd4, + 0x5b,0x25,0x4c,0x2e,0xe3,0x75,0xf2,0x67,0x2a,0x56,0xa3,0xeb,0x52,0xc9,0xea,0x19, + 0xcd,0x2f,0xf9,0xe1,0x4b,0x30,0x71,0x5b,0x8a,0x7e,0x5a,0x3c,0x94,0x29,0xea,0x6b, + 0xb5,0x07,0x36,0xd9,0x91,0x4f,0x7e,0xba,0x53,0x79,0xbd,0x5a,0xbe,0xc3,0xdd,0xe4, + 0xfd,0x28,0x5f,0xb2,0xfe,0x8b,0x0e,0x90,0xa2,0x99,0xb5,0x7c,0x20,0xb3,0xe8,0xa2, + 0x7f,0xd9,0x6f,0xf1,0x99,0x6c,0x4a,0xc2,0xaa,0x40,0xbb,0x87,0x75,0xe0,0xae,0xb7, + 0xde,0x10,0x6c,0x98,0x36,0x94,0x1e,0x18,0xc8,0xc7,0x92,0xbf,0x60,0x30,0xfc,0xcb, + 0x03,0x17,0x7d,0x19,0x0d,0x23,0x2c,0xed,0xf1,0x1f,0x43,0x32,0xe6,0x89,0x37,0xd4, + 0x85,0xc3,0xc6,0xe6,0x26,0x06,0x7d,0xed,0x1b,0xc1,0x68,0x77,0xb8,0x71,0xd1,0x35, + 0x7b,0x66,0xdf,0xdc,0xad,0x7b,0x87,0x5c,0x9c,0xe1,0xdc,0xfc,0xa1,0x6f,0x7b,0xcd, + 0x2e,0x87,0x1e,0xe0,0xb4,0x7c,0x92,0x23,0x49,0xa3,0x86,0xb2,0xe8,0x03,0x89,0xb6, + 0x6f,0xb1,0x53,0xd0,0xfc,0x42,0x83,0xc8,0x08,0x8f,0xfa,0x8c,0x02,0x5b,0xee,0xd1, + 0xfd,0xf3,0xe6,0x8f,0xbe,0x56,0x88,0x32,0x23,0x5f,0xf0,0xcc,0x03,0xcc,0xcc,0xb3, + 0xeb,0xf7,0x16,0xbf,0x19,0x2c,0x37,0x58,0xfe,0x82,0x30,0x06,0x53,0xc0,0x77,0xfc, + 0x78,0xab,0xc3,0xfc,0xe7,0x18,0x05,0x5b,0xbc,0x0a,0x34,0x1f,0x86,0x4f,0x56,0x1f, + 0x1f,0xd8,0x5a,0x82,0x53,0xd8,0x35,0x28,0xe0,0xd6,0xa9,0x7b,0xed,0xb9,0x37,0xa8, + 0x46,0x0a,0xc7,0x84,0x64,0x12,0x87,0xbe,0x7f,0x1e,0xa2,0x7f,0x40,0x79,0x59,0xbe, + 0x24,0x2e,0x61,0x5b,0xab,0x81,0xee,0xd2,0xc2,0xf5,0xcb,0xb5,0xce,0x64,0xb1,0x56, + 0xbe,0xa4,0x44,0x31,0x64,0xfc,0x21,0x75,0xe3,0xe7,0x6d,0xf2,0x8e,0x6f,0x70,0x3e, + 0x2f,0x27,0xa7,0xb7,0xff,0xed,0xee,0xe4,0x05,0xfa,0xa7,0x90,0xed,0x1a,0xe7,0xf2, + 0x2a,0x03,0x33,0x14,0x26,0x9d,0x3f,0x44,0x4e,0x0c,0xa8,0x98,0xb3,0xa2,0x91,0x82, + 0xf5,0x21,0xbd,0xd5,0x9b,0x1f,0xd1,0x53,0xaf,0x4f,0xd0,0x98,0xd3,0x5b,0xb2,0x5a, + 0xaf,0x31,0xca,0x8a,0xc7,0x39,0xad,0xa9,0xe2,0x23,0xd6,0x1f,0xec,0xd6,0xa0,0x05, + 0x66,0xb5,0xea,0x37,0x05,0x35,0xb0,0x5b,0x87,0x14,0x75,0x95,0x78,0xd5,0xeb,0xe3, + 0x6e,0xd4,0xbe,0xb7,0x46,0x71,0x6f,0x29,0x3c,0xce,0xd1,0xe0,0x37,0xeb,0x9e,0x62, + 0xe4,0xfc,0x66,0x19,0x22,0x8a,0xc6,0x95,0x61,0x34,0x3d,0xf6,0xb7,0xee,0x73,0x84, + 0x2b,0x5a,0x2f,0x04,0x42,0xaf,0x81,0x7b,0x31,0x16,0xfa,0x5a,0x4b,0xb0,0xc6,0xed, + 0x83,0x8d,0xb5,0xae,0x1f,0x6c,0xac,0x71,0xff,0x80,0xee,0xa2,0xd7,0xdd,0x40,0xa8, + 0xc7,0x82,0xdd,0xf2,0x5d,0xf5,0xe8,0x13,0x3d,0x4a,0xaf,0xf8,0xd2,0x62,0xcc,0x27, + 0xdb,0xdf,0x71,0x6f,0x3d,0xa4,0x3e,0x73,0x50,0xd4,0x43,0x07,0x54,0xd9,0x4f,0x67, + 0xe7,0x7a,0xe3,0x6d,0xec,0xcd,0xcd,0xd8,0xc2,0x53,0x39,0x1c,0x1e,0x56,0x6c,0xc3, + 0x47,0xc9,0x41,0x96,0x0a,0xf0,0x46,0xa1,0x12,0xe1,0x75,0xf5,0x58,0x9e,0xa2,0x88, + 0x37,0x5c,0x91,0x10,0xbe,0xfd,0x27,0xe1,0xc2,0x77,0x50,0x1c,0x8d,0x5d,0x58,0xea, + 0xfc,0xe2,0x5d,0x5b,0xc3,0x68,0x08,0x74,0x97,0x91,0xdf,0x4d,0x51,0x1d,0xfd,0xa7, + 0x53,0xc4,0x33,0xa1,0x78,0x95,0xee,0x2f,0x1d,0x29,0x58,0x35,0x68,0xe5,0x57,0x9e, + 0x68,0xa9,0xd5,0xe8,0x08,0x85,0xf0,0x02,0x53,0x2f,0xf0,0x12,0x74,0xd7,0xcb,0xe9, + 0xa1,0xbc,0x6e,0x74,0xb6,0x88,0x10,0x84,0xf9,0xf3,0x7d,0xf2,0xc4,0x60,0x84,0xe3, + 0xc8,0x6f,0x25,0x81,0xb2,0x33,0x2a,0xbe,0xdb,0x90,0x65,0x29,0x4f,0x8d,0xa1,0xbb, + 0x89,0xec,0x8b,0x14,0x07,0x0a,0xae,0x95,0xc7,0xcd,0x7f,0x16,0xc9,0x6e,0xce,0x28, + 0x9c,0x2a,0x8f,0x53,0xcb,0x9a,0x62,0xf3,0x69,0x74,0x7f,0x3f,0x31,0x36,0x37,0x23, + 0xe0,0x97,0x13,0x59,0xfe,0xb8,0x50,0x30,0xd1,0x9c,0x10,0x03,0xa7,0xb2,0x98,0x9f, + 0x79,0x04,0x96,0xde,0x00,0x2e,0xf0,0x1b,0x11,0x26,0x22,0xbc,0x49,0x46,0x17,0x5f, + 0x4d,0x27,0xe3,0x85,0x8a,0x39,0x00,0x32,0x5b,0xf4,0xa6,0x2f,0x96,0x62,0xd7,0xbb, + 0x3a,0x1f,0xc3,0xad,0x6d,0x1f,0x55,0x0f,0x72,0x25,0x64,0x75,0xe4,0x5a,0xe8,0x22, + 0x7c,0x90,0x8f,0x0b,0x81,0x4d,0xb1,0xcb,0xaa,0x38,0xe0,0xd2,0x4d,0xa7,0x70,0x68, + 0x92,0x71,0xdf,0x52,0xaa,0x8e,0x9e,0x95,0x1a,0x69,0x2a,0x79,0xc0,0x08,0x79,0xb9, + 0xf8,0x91,0x17,0x7e,0xf9,0x31,0x5a,0x47,0x7d,0x6d,0x77,0xa8,0x8c,0x24,0x8f,0x44, + 0x98,0x37,0x79,0xd4,0x72,0xd4,0x67,0x61,0x8f,0xf4,0xef,0xe9,0x7f,0xa0,0x25,0xb5, + 0xe8,0xaa,0xa8,0x18,0x3d,0x0c,0x26,0xc7,0xb6,0x42,0xf9,0x56,0x76,0x03,0xd6,0xa8, + 0xa9,0x94,0xb9,0xc0,0x2a,0xe6,0x70,0x1a,0xd0,0x9b,0xb3,0xcf,0xed,0x8f,0x9f,0x7e, + 0xd1,0x76,0xf8,0xfa,0xaa,0xb4,0x69,0x9b,0xfa,0x09,0xff,0xc2,0xf3,0x48,0xc4,0xbf, + 0x92,0xcd,0xdb,0xd8,0xc6,0xf1,0x96,0x0d,0xe1,0xa8,0xf7,0xf1,0x85,0x4f,0x0c,0x96, + 0xb3,0xf0,0x62,0x1e,0x8c,0xec,0xde,0xa9,0x11,0x77,0x78,0x14,0xe8,0x02,0xa5,0x71, + 0x1c,0xc7,0xda,0x42,0xe2,0xc8,0x69,0x32,0x72,0xa4,0x0d,0xa2,0x62,0x92,0x30,0xe3, + 0x48,0xc8,0x9c,0x8f,0xd9,0x12,0x56,0xbd,0xc2,0x11,0x4f,0x0c,0x03,0x1a,0xa2,0x68, + 0x7d,0x34,0xb2,0x53,0x56,0x70,0x54,0xf9,0xe4,0x48,0x47,0x16,0x16,0xb9,0x8e,0x56, + 0x80,0x79,0x2b,0x8e,0x8e,0xe2,0xc8,0x42,0x57,0xec,0xb6,0xc6,0xc7,0xba,0xf1,0x44, + 0x8d,0xec,0xce,0xe7,0xb2,0xe8,0x45,0x8b,0xd0,0xe3,0x91,0xb3,0x93,0xad,0xda,0x4e, + 0x06,0xab,0xf4,0x96,0x61,0x73,0xfe,0xab,0x46,0x2f,0xca,0x23,0x68,0xd2,0x5b,0x68, + 0x9d,0x1c,0xad,0xe5,0x7a,0x56,0xc8,0xc7,0xe6,0x66,0xab,0xbc,0xdd,0xef,0xef,0x4b, + 0x24,0xc4,0xe0,0x96,0x8b,0x5b,0x59,0x37,0x4b,0xa5,0x8e,0x74,0x7a,0x4b,0xbc,0xb8, + 0x11,0x0a,0x8e,0xd4,0x44,0x59,0x24,0x03,0x47,0xf6,0x84,0xad,0xa2,0x13,0x39,0xc6, + 0xcc,0xac,0x81,0x91,0x1a,0x60,0xae,0xe0,0x8e,0x4d,0x15,0x3f,0x8d,0xd9,0x57,0x57, + 0x22,0xc2,0x45,0x51,0x7c,0x56,0x36,0x6a,0x29,0xbd,0x38,0x42,0x6a,0xeb,0x1d,0xbe, + 0x7a,0x60,0xb6,0x64,0x1b,0x18,0x42,0xb3,0xda,0x82,0x4c,0x55,0xeb,0x83,0xf8,0xff, + 0x05,0xc6,0x2d,0x42,0xdd,0x1b,0xd9,0xab,0xde,0xa3,0x6c,0x38,0xf4,0x90,0x7b,0x75, + 0x34,0x9c,0x2c,0xdf,0xf6,0x66,0x00,0x7f,0xc2,0x44,0x0d,0x64,0x19,0xdd,0x84,0x34, + 0xe9,0x36,0xdc,0xed,0x1d,0xe1,0x57,0xe2,0x7b,0xa0,0x02,0x75,0xcc,0x6e,0x0f,0x88, + 0x16,0x5e,0x18,0x19,0x60,0x3d,0x71,0x4c,0x37,0xcf,0xfa,0xe3,0x87,0xe1,0x2b,0xfd, + 0x89,0x64,0xbe,0xd2,0x36,0x57,0xbb,0xe3,0x1c,0x13,0x12,0xd7,0x0a,0x8d,0x1b,0xc9, + 0x9e,0x38,0x1e,0xb0,0x8c,0x86,0x59,0xea,0xaf,0x98,0xc9,0x71,0x71,0x98,0x31,0xc8, + 0x17,0x0e,0x70,0x00,0xe4,0xf4,0x0d,0x45,0xcd,0x48,0x79,0x87,0x86,0x22,0x87,0x15, + 0xde,0x17,0x71,0xaa,0x3e,0x2d,0x19,0x9f,0x7d,0xb6,0xf3,0xcf,0x16,0x92,0x35,0x10, + 0xb9,0x98,0xba,0xfc,0x26,0xc9,0xcb,0x77,0xf7,0x12,0x35,0xbf,0xbb,0x47,0x0c,0xf9, + 0xee,0x9e,0x76,0xd0,0x77,0xf7,0xe9,0xed,0x77,0xf7,0x38,0xc6,0xdf,0x04,0x4a,0x88, + 0x0f,0x5c,0x5d,0x99,0x8e,0x80,0x11,0xbf,0x09,0x3c,0xf4,0xbb,0x22,0x30,0x3e,0xe4, + 0x0f,0x9e,0x20,0x54,0x71,0xdc,0x02,0xb0,0x4a,0x4c,0xa5,0x04,0x40,0x8b,0x39,0x85, + 0x48,0x18,0x8a,0x7f,0x5f,0x4c,0x6c,0xae,0x60,0x8a,0x23,0x2e,0x96,0x87,0x9d,0x57, + 0xa5,0x61,0xd6,0x87,0x45,0xf8,0x24,0x21,0x11,0xb0,0x58,0x51,0x7c,0x61,0xfc,0x59, + 0xfd,0x79,0xbf,0xe8,0x93,0x22,0xe4,0x15,0xef,0x15,0x7d,0xf6,0x5d,0x1b,0xaf,0xc7, + 0x21,0x77,0xd7,0x54,0xfe,0xa7,0xc1,0xce,0x73,0x23,0xad,0x6b,0x28,0x37,0x94,0x44, + 0xc7,0x19,0x85,0xdb,0xdc,0xac,0xaa,0x2c,0xec,0x30,0xf0,0x68,0x87,0x93,0x59,0x18, + 0xc2,0x1f,0x9b,0x2f,0x08,0xcb,0xc7,0x94,0xb8,0xcf,0x9e,0xa1,0xb5,0x49,0xec,0x4a, + 0xb4,0x04,0x83,0xfc,0x51,0xfc,0x04,0x40,0x9f,0xf6,0x97,0x33,0x0c,0xae,0x6a,0x63, + 0x20,0x19,0x65,0x54,0x8d,0x41,0x9a,0xc4,0x63,0x5b,0x4a,0x6c,0xa6,0xc6,0x61,0x71, + 0x01,0x58,0x2b,0x39,0x82,0xe2,0xac,0x55,0x52,0xf6,0x4c,0xa1,0x65,0xf0,0xb5,0xf3, + 0xcf,0x8b,0xe3,0xf6,0xff,0xb2,0xdb,0x7f,0x7c,0x5d,0xf6,0x1f,0x64,0x68,0xbe,0x7c, + 0x75,0xd6,0x21,0x2b,0xba,0x91,0xd9,0x23,0x56,0x40,0x8c,0x5c,0x14,0x01,0x60,0xfd, + 0x36,0x68,0x2b,0xf8,0x13,0x69,0x97,0x30,0x97,0x6a,0x18,0xed,0x48,0x6b,0xd1,0xbd, + 0x1c,0x9c,0x80,0x51,0xba,0x56,0x56,0xdf,0xb0,0x90,0x1c,0xc7,0xd2,0x8e,0xcf,0xb1, + 0xec,0xcc,0x31,0x05,0x47,0x1c,0x8d,0xd5,0xc2,0xc3,0x71,0x39,0x4a,0x5d,0x21,0x7b, + 0xb4,0x3a,0x14,0x17,0x45,0x84,0xc2,0xcb,0x27,0x22,0x97,0xa8,0x98,0x7e,0x0e,0x90, + 0xc2,0x44,0x8a,0x8e,0x82,0x17,0xe1,0x0a,0x51,0xaf,0x96,0x2c,0x20,0xb0,0x5d,0x22, + 0xf7,0x67,0x88,0x45,0xd4,0xa9,0xe5,0xc6,0xb8,0x1c,0x85,0xa8,0x38,0x22,0x9e,0x05, + 0x9b,0xc4,0x84,0x1e,0x21,0x6b,0x2a,0x31,0x5c,0xf2,0x90,0x1d,0xf6,0x64,0xe2,0x46, + 0x69,0x16,0xb9,0x45,0x04,0xae,0xc0,0x78,0xc7,0x20,0xbd,0x61,0xc8,0x69,0xf8,0xe6, + 0x90,0x56,0x58,0xa0,0x10,0xd6,0x8a,0x42,0xef,0x64,0xc1,0xad,0x2c,0xed,0xdd,0x54, + 0xbc,0x1a,0x20,0x9a,0x21,0xd6,0x89,0x01,0xb1,0x30,0x76,0x47,0x32,0x89,0x5d,0x97, + 0xed,0x90,0x89,0xf6,0x9b,0xce,0x66,0x41,0x0e,0x90,0xf1,0xec,0x37,0x9d,0x62,0x7e, + 0xe4,0xf1,0x5f,0x08,0xf5,0x01,0x92,0xfd,0x0e,0xb4,0x45,0xa1,0x31,0xa8,0x75,0x28, + 0x80,0x61,0x63,0x12,0x11,0xdd,0x70,0x11,0x69,0x73,0x98,0x82,0xa9,0x44,0x29,0x49, + 0x43,0xee,0x8c,0x32,0x69,0x5b,0x63,0xc3,0xe2,0xbd,0x0f,0x9a,0x41,0x16,0x93,0x87, + 0xa2,0xf1,0xe4,0xa1,0x43,0x94,0xa0,0x1d,0x78,0x4e,0xd1,0x16,0xf1,0xb9,0x32,0x55, + 0x48,0xc4,0x18,0xc8,0x63,0xf4,0x14,0x83,0x44,0xd5,0x63,0x5a,0x93,0x5a,0x25,0x02, + 0x28,0x5a,0xda,0x09,0x45,0xfb,0xa2,0x27,0x1d,0xf8,0xde,0x0b,0x86,0x50,0x01,0xf4, + 0xf0,0x7d,0x0d,0x00,0x5c,0x9c,0x8a,0x08,0x72,0x43,0xb1,0xc0,0x2c,0x5d,0x1d,0x40, + 0x1e,0x86,0xaa,0x12,0x71,0xaa,0xc4,0x47,0x6e,0x15,0x3e,0x92,0x87,0x9b,0xba,0x15, + 0xe1,0x9b,0x84,0x1d,0x8f,0x9a,0xca,0x1f,0x70,0x6b,0x9c,0x1e,0x97,0x2b,0x5f,0xf7, + 0x12,0xfa,0xe0,0x2d,0xc5,0x70,0xa2,0xf8,0x80,0xa2,0xf9,0xcc,0xf5,0x0e,0xef,0x3b, + 0x95,0x43,0x05,0x66,0x11,0x51,0x9a,0xf0,0x54,0xc4,0x17,0xda,0x12,0xf2,0xb6,0xf2, + 0x52,0xe1,0xc6,0xb6,0xbe,0xf5,0xdf,0x1b,0x65,0x48,0x81,0x7e,0x35,0xc4,0x50,0x86, + 0x40,0xac,0x20,0x70,0x7b,0x35,0x51,0x5f,0xb4,0x24,0x44,0x93,0xe9,0xca,0xd0,0x2f, + 0xfc,0xac,0x66,0xe6,0xc1,0x03,0x42,0xe1,0x89,0xf4,0xb5,0x5c,0x41,0x67,0x0a,0xd1, + 0x99,0x5a,0xc5,0x8a,0x32,0x8a,0x50,0x32,0x43,0xaf,0x2e,0x4d,0xaa,0x33,0xa2,0x19, + 0x82,0x55,0x21,0x2e,0x8f,0x06,0x92,0xb4,0x0c,0xd8,0x93,0x86,0x97,0xe4,0x4f,0x80, + 0xc0,0x55,0x56,0x21,0xa9,0x5b,0x04,0x58,0x83,0xc2,0xf3,0xc8,0x1a,0x45,0xd4,0x5d, + 0xad,0x22,0xe9,0x96,0x96,0x85,0x0f,0xaa,0xe9,0x3f,0xa7,0x3a,0xd4,0xb5,0xe3,0x39, + 0xa4,0x49,0x03,0x2e,0x81,0x20,0x0f,0x0c,0x01,0x8d,0xba,0x59,0xc8,0x20,0x19,0x9b, + 0xa9,0x10,0x55,0xa8,0x7e,0x9c,0xd0,0x2b,0xe2,0xcc,0x17,0xe0,0x2d,0x7c,0x06,0x4b, + 0x51,0x85,0x70,0xd9,0xb7,0x30,0xac,0xd3,0x8d,0x0b,0xea,0xf8,0x16,0x56,0x9f,0x7a, + 0x44,0x94,0x92,0x9a,0xb5,0x7e,0x34,0xc2,0x0f,0xdd,0xf6,0xaa,0x5b,0xe1,0x22,0x11, + 0x79,0x28,0xbf,0xc9,0x56,0xac,0x20,0x37,0x13,0x59,0x82,0x38,0xf3,0x9b,0x17,0x7c, + 0x9b,0x27,0x47,0xf2,0x72,0x59,0xab,0xcb,0x37,0x88,0x27,0xae,0xe7,0xb7,0x8a,0x65, + 0xf8,0x02,0xb3,0x31,0xe8,0x77,0xd4,0x8b,0x4c,0x22,0xa8,0x99,0x94,0xa7,0x04,0x41, + 0xc7,0xc7,0xdc,0x68,0xd9,0x88,0x14,0x11,0xbc,0x61,0xad,0x8e,0x74,0x23,0xb3,0x40, + 0x2b,0xd1,0x59,0xb9,0x13,0xdd,0x5c,0x3e,0xd4,0x84,0xb4,0xa8,0xdd,0xbc,0x85,0xb8, + 0x50,0xea,0x5e,0xbd,0x41,0x4a,0x87,0x26,0x26,0x00,0x77,0x4e,0xc5,0xf1,0x45,0x26, + 0xe4,0x31,0x68,0x26,0x00,0x52,0x67,0xca,0xd7,0x43,0xeb,0x02,0x5e,0xac,0x0c,0x59, + 0x21,0x26,0xc5,0x4e,0xaf,0x1c,0xaa,0x54,0x14,0x2d,0x1b,0xb3,0x94,0x61,0xcf,0x93, + 0x4b,0x33,0x1b,0x8b,0x99,0x7a,0xa9,0xef,0x9a,0xb0,0x5d,0x05,0x23,0x12,0x04,0x91, + 0x61,0xd0,0xa6,0xdc,0x12,0x59,0xa4,0x34,0x10,0x6f,0x4e,0x25,0x36,0x30,0x93,0x57, + 0x6a,0x41,0x0f,0xa5,0x3a,0x14,0xaf,0x99,0x34,0x11,0xe0,0xba,0x37,0x23,0xa5,0x2c, + 0xc6,0x8e,0x86,0xee,0x7d,0x2f,0xb8,0x2a,0x26,0xe3,0xfd,0x82,0x2b,0xa1,0x72,0x22, + 0xd9,0xc4,0xda,0x8b,0x18,0x28,0xc5,0x2c,0x4d,0xa3,0xc1,0xce,0x0e,0xe8,0x19,0xd1, + 0xb6,0xbe,0xa3,0x0f,0xb9,0x72,0xa1,0x3b,0xb4,0x19,0x8a,0xe4,0x59,0xec,0x4e,0xc5, + 0x77,0x1c,0xde,0x34,0x5e,0x9f,0x12,0xe7,0xbe,0x35,0x6d,0xe9,0x7a,0xa1,0x29,0xfd, + 0xb9,0x5e,0x69,0x4a,0xb9,0x1c,0xf4,0xa0,0xc2,0x61,0x95,0xb1,0x92,0x2f,0x85,0x08, + 0xa0,0xdf,0xdf,0xf7,0x3b,0x43,0xa5,0x22,0xdd,0x6d,0x2d,0x3f,0x7d,0x38,0x14,0x2f, + 0xd4,0xa9,0x81,0x14,0x54,0xcc,0x0c,0xda,0xed,0x47,0xdb,0x38,0xec,0x1c,0x05,0x03, + 0x71,0xc0,0x14,0xbc,0x1a,0xed,0xc1,0xbe,0x93,0x98,0x00,0x2d,0x4c,0x5d,0xc4,0xbe, + 0x3c,0x36,0xc2,0x02,0x94,0x9d,0xe5,0x04,0x38,0xbb,0x8b,0x0f,0x11,0xb4,0xc9,0x0d, + 0xb7,0xd6,0x9a,0x4b,0x0c,0x2e,0xbc,0x2a,0x07,0x68,0x48,0x8d,0x21,0xc6,0xa6,0xc6, + 0x52,0x16,0x07,0x06,0x6d,0x19,0x0f,0xcd,0x17,0x6f,0x79,0x4c,0x9d,0x9a,0x56,0x36, + 0x6a,0xe6,0xa5,0xe8,0x57,0x72,0x0a,0x47,0x5b,0xaf,0x6c,0x8d,0x57,0x69,0x47,0x3f, + 0x3c,0xa5,0x1e,0x5f,0xed,0xd8,0x87,0x5b,0x03,0xfd,0xbf,0xc2,0x85,0x36,0xb1,0xc5, + 0x7d,0x2f,0xa6,0x02,0xb8,0x41,0xc5,0x5d,0x60,0x93,0x48,0x89,0x14,0x35,0x4e,0xde, + 0xbf,0xc3,0x47,0x1e,0x47,0xbd,0xdd,0x61,0xf6,0xfd,0x8f,0x37,0xa7,0x3f,0xa0,0x6b, + 0xe5,0x85,0xce,0x2f,0x83,0xbc,0x05,0xa2,0x72,0x83,0x0f,0x4c,0xe1,0xe5,0x62,0x98, + 0x04,0xbd,0x75,0xa8,0xd3,0xed,0x33,0xc8,0xfd,0x01,0xff,0x12,0xf3,0x01,0xb6,0xe4, + 0x50,0x39,0x2f,0x98,0x86,0x5c,0x68,0x82,0xd7,0x74,0xd0,0x42,0x02,0x98,0x40,0xe4, + 0x5f,0x48,0x46,0x94,0xae,0xb5,0xbe,0x9c,0x9f,0x18,0x5c,0x90,0x22,0x12,0xd0,0xf3, + 0x23,0x42,0x38,0xa5,0x02,0x4b,0xf2,0xbd,0x6f,0x0b,0xcc,0x79,0xe0,0xa2,0xac,0x2e, + 0xa8,0x8d,0xe6,0xf7,0x9d,0x85,0x2e,0xc1,0x05,0xe7,0x80,0xf5,0x18,0x07,0x42,0xff, + 0xc9,0xb5,0x23,0x1a,0xe1,0xe7,0xb3,0xd3,0xe3,0x0f,0x1a,0xc5,0x9a,0xc0,0x40,0x0e, + 0x3e,0xfa,0xed,0x26,0xa9,0x46,0x97,0x89,0xb8,0x4e,0xf6,0xa2,0x16,0x54,0xfb,0x48, + 0xea,0xdb,0xcc,0x15,0xc1,0xf3,0xc8,0xc1,0xc4,0x64,0x4d,0x0e,0x63,0x02,0xb0,0x70, + 0x72,0xe9,0x16,0x2b,0x8a,0xbd,0x86,0x73,0x79,0x1d,0x83,0xdc,0x81,0x52,0x88,0xc8, + 0x03,0xfe,0xb4,0xdc,0xdf,0x6d,0xcf,0xdc,0x5b,0xbc,0x76,0x11,0xb7,0x41,0xa8,0x12, + 0x53,0x02,0x2d,0x60,0x02,0x95,0xf0,0x36,0x4c,0xde,0xfd,0x71,0x72,0x95,0xd7,0xa4, + 0x67,0xc1,0x38,0xd4,0x20,0x0b,0xb2,0xf3,0xc4,0xf5,0xaf,0x41,0x43,0x2f,0xd6,0x87, + 0x3f,0xf8,0x64,0x94,0x09,0xd2,0x2a,0xc5,0xe7,0x50,0xba,0xe6,0x2c,0xad,0x45,0xe6, + 0x32,0x11,0xbd,0x50,0xbe,0x1e,0x46,0x46,0x6b,0xb1,0x12,0xb0,0xe5,0x22,0x37,0x9e, + 0xcb,0xc5,0xb0,0x89,0xea,0x6f,0x25,0xda,0xf1,0xc9,0x7b,0x0d,0x33,0xbc,0x04,0x71, + 0x20,0xa9,0x4e,0x45,0x5b,0x7a,0x41,0x7a,0x20,0x66,0x64,0x3b,0xf8,0x9e,0x28,0xb5, + 0x81,0x50,0x42,0xa3,0x3b,0x26,0x20,0x27,0xd2,0x5a,0x14,0xea,0xc1,0x95,0x1d,0x72, + 0x8e,0xf5,0x87,0x1b,0x87,0xb3,0x30,0xaa,0xa9,0x92,0xc3,0x80,0x58,0x8c,0x10,0x1c, + 0x5c,0x3b,0x15,0xa8,0xe3,0xce,0x23,0xd6,0xc0,0xf1,0x81,0x19,0xe0,0x3f,0x42,0x1d, + 0xb7,0x63,0x7b,0x9e,0x87,0x8e,0x4b,0x58,0x7b,0xa3,0x03,0x51,0x73,0x7c,0x63,0x62, + 0xf4,0xb1,0xf8,0x41,0x62,0xa9,0x4b,0xc1,0xcb,0x38,0xc4,0xcf,0x29,0xa9,0xf1,0x08, + 0xa0,0xc2,0x0b,0x6c,0xd8,0x26,0xed,0x47,0xd8,0x04,0x02,0x52,0x14,0xe8,0x64,0x82, + 0x84,0x02,0x01,0x1e,0xbb,0x59,0x3e,0x9a,0x86,0x27,0xd7,0x26,0xa9,0x1f,0xa6,0x26, + 0x22,0x6b,0x18,0x6a,0x2d,0x6e,0x1a,0xbb,0xfb,0xec,0xc6,0xe2,0xab,0x8d,0xe6,0xf5, + 0xda,0x3e,0x64,0x4c,0xa2,0xd3,0xc2,0x28,0xb4,0x16,0xa2,0xa1,0x89,0xb1,0x40,0x4c, + 0x8d,0xa3,0x3f,0x54,0x2a,0xb5,0x1d,0xcf,0x06,0x11,0x46,0x7f,0x73,0x9b,0x92,0x4f, + 0xb4,0x98,0x08,0xa6,0x06,0x20,0x05,0x78,0x13,0xd1,0x8f,0x1f,0x5e,0xf2,0xe5,0x47, + 0x84,0x3f,0xfe,0x95,0x93,0x87,0x8c,0x4b,0x11,0x27,0x1e,0x41,0x32,0xc5,0xb8,0x2c, + 0x74,0x27,0x5b,0xad,0xc7,0xcb,0x86,0x62,0x76,0xb1,0x56,0x5e,0xc6,0x8d,0x41,0xff, + 0xc7,0x3d,0xc1,0xe7,0x94,0xa4,0xa0,0x52,0xc4,0x34,0xa5,0x86,0x9c,0xb2,0x1b,0x24, + 0x28,0xb7,0x7b,0xf4,0x02,0x11,0x72,0x13,0xcd,0x4e,0x53,0xa4,0xcc,0x8e,0xc6,0x79, + 0xc5,0x82,0x28,0xe8,0xd1,0xb2,0xd9,0x0e,0xed,0x36,0x91,0x0c,0xd8,0xe8,0xb8,0xb7, + 0x0f,0x85,0xa2,0x09,0x17,0xfd,0x05,0x3d,0xf9,0x6b,0xca,0x6a,0x4b,0x7e,0xd7,0x9b, + 0xeb,0x5c,0x46,0x89,0x46,0x74,0xe6,0x33,0x9a,0xa4,0xb5,0x05,0xbf,0x9c,0xfd,0xe3, + 0xe7,0x33,0x25,0x7b,0x3a,0xcd,0xf2,0xe9,0x01,0xed,0x4a,0x09,0x3c,0x78,0xac,0x90, + 0x35,0x44,0x28,0xc9,0x2c,0x80,0x1a,0x85,0xf3,0x9a,0x7a,0x6e,0x4a,0x21,0x65,0x00, + 0xaf,0x22,0x56,0x5c,0xa5,0xd7,0x1d,0x14,0x83,0x55,0xb8,0x05,0x22,0x8b,0xd1,0xbb, + 0xec,0x74,0xc7,0x97,0xf4,0x0e,0xeb,0x65,0xdb,0x2c,0x20,0x68,0xf3,0x81,0x95,0x17, + 0x4c,0xfc,0x85,0x43,0x3d,0x68,0x20,0xfb,0x79,0xd4,0xaf,0x27,0x37,0x58,0x52,0xa9, + 0x4d,0x0a,0x06,0x52,0x20,0xfa,0xf4,0x12,0x5e,0x2f,0xdf,0xbb,0x2e,0x36,0x51,0xa9, + 0x17,0x01,0x3b,0x4a,0x2a,0xf5,0xc4,0x3a,0x17,0x86,0x4a,0x56,0x7e,0xde,0x92,0x2a, + 0x21,0xa7,0xe4,0xb6,0xd8,0xaa,0x68,0x0f,0xa8,0x94,0xe6,0x15,0x79,0x83,0x11,0x4f, + 0x45,0x71,0xb1,0xb3,0x6b,0x4a,0xd2,0xe2,0xbc,0x66,0x03,0x4b,0x4d,0x59,0xc4,0x9b, + 0x62,0xcc,0x5d,0x65,0x24,0xd5,0x20,0xa3,0xf9,0x70,0x92,0x72,0xc5,0x8c,0x56,0x8a, + 0xa2,0x4b,0xf1,0xe3,0x3e,0x86,0x95,0x0e,0xe7,0xe2,0x4f,0x9b,0x0c,0x2a,0x6d,0x64, + 0xec,0x32,0x85,0xb4,0xac,0xb6,0xe0,0xe8,0xf7,0xc2,0x2e,0xf8,0x50,0x37,0x3c,0x19, + 0xcb,0x57,0x19,0x22,0xe2,0x2c,0x46,0x6b,0x42,0xa4,0xa8,0x06,0x34,0xc5,0x00,0xb2, + 0x75,0xc3,0x95,0xf9,0x62,0xc8,0xf2,0x73,0x19,0x06,0xf7,0x00,0xb0,0x07,0x93,0xa2, + 0x2b,0xca,0xf0,0xb0,0xc5,0xd8,0xb3,0x02,0xc4,0xc2,0x32,0xad,0x89,0x83,0xb3,0x4b, + 0x57,0x14,0x55,0x0f,0x58,0xb4,0x25,0x68,0x74,0x6d,0xf9,0x25,0x79,0x82,0x8f,0x48, + 0x82,0x56,0x8a,0x8c,0xc8,0xd3,0x97,0xc6,0x19,0x61,0x50,0x66,0xe6,0xd9,0x61,0x1b, + 0xd6,0x0e,0x53,0x9b,0x03,0xaa,0x53,0xbf,0x68,0x6a,0x41,0xc3,0x16,0xa9,0x8e,0xb0, + 0xb0,0xc4,0xc1,0xd8,0x13,0x93,0x50,0x1e,0xa6,0x9f,0xcc,0x8c,0xbc,0x26,0x9f,0xf5, + 0xd3,0x96,0xb8,0x09,0x28,0xe6,0x1d,0x6e,0x42,0x2a,0x25,0x23,0xf9,0xca,0x56,0x32, + 0xdb,0x0c,0x69,0x46,0x92,0xa0,0xc6,0xa4,0x4d,0xca,0xc7,0x2c,0x04,0x8d,0x64,0xd9, + 0x8a,0xbc,0x01,0xe4,0xf0,0xdf,0x1f,0x7f,0xac,0xad,0xa3,0xd9,0x51,0x53,0x35,0x0a, + 0x3e,0x7c,0x23,0xcd,0x60,0xc7,0x9f,0x65,0x7d,0x20,0xa7,0xc5,0x2e,0xd1,0x8c,0x91, + 0x57,0x95,0xd2,0x10,0x2b,0x70,0xc8,0xb6,0x44,0xe3,0xc2,0xc8,0x25,0x58,0xdb,0x55, + 0x63,0x09,0x93,0x4d,0xd6,0xf1,0xb5,0x5c,0xee,0x49,0x2e,0x07,0xd1,0x76,0x51,0xc9, + 0x5b,0xa6,0xbb,0x63,0x22,0x0f,0x70,0xb6,0x48,0x91,0xe8,0xd5,0x16,0xd1,0x5a,0x89, + 0x0d,0x12,0x9d,0x9d,0x68,0xb2,0x25,0xb1,0x18,0x92,0x11,0xbc,0xc1,0xbf,0x25,0x96, + 0xa2,0xb5,0xdb,0xb9,0xf1,0x80,0xac,0x88,0x22,0xb6,0xb2,0xfe,0x75,0xe3,0x6b,0x2e, + 0x9f,0xfe,0xfc,0xe6,0xbf,0x58,0x3c,0x15,0xaf,0xe1,0x29,0x27,0xaa,0x1d,0x66,0x38, + 0x76,0x9a,0x51,0x21,0xa4,0x3b,0x5e,0xba,0x70,0xf2,0x4c,0xa2,0x20,0x32,0x33,0x0c, + 0x2e,0x0b,0xb9,0x7c,0x61,0xc4,0xa2,0x73,0x2c,0xfd,0x5c,0x2a,0xd0,0x20,0xfe,0x88, + 0x9b,0x24,0x94,0xd1,0xe5,0xa2,0xf1,0xb5,0x28,0x77,0xca,0xb7,0xf6,0x50,0x66,0x91, + 0x23,0xae,0x91,0xf4,0xcc,0x1e,0x2f,0x58,0xe8,0x67,0x83,0xe6,0xdf,0xdc,0x5c,0x91, + 0xc7,0x93,0xf4,0xe2,0x12,0x97,0x2f,0x8b,0x2c,0x62,0xa4,0x98,0x8a,0xc2,0x39,0x9e, + 0x3e,0xbb,0xc1,0x84,0xc2,0xc5,0x7f,0xf8,0xe9,0x0f,0x99,0x9d,0xde,0xe2,0x04,0xc4, + 0x79,0x2a,0xe6,0xe1,0x51,0xaa,0xc8,0xb3,0x71,0x59,0x65,0x18,0xb0,0xa9,0x8d,0xb1, + 0xdb,0x65,0x96,0xb3,0x48,0xef,0x26,0x77,0x13,0x1a,0xe2,0x6b,0xf8,0xad,0xd1,0x07, + 0x0a,0x7e,0x28,0xff,0x6a,0xad,0x1b,0x64,0x9d,0x89,0x14,0x69,0x44,0x65,0x43,0xd6, + 0x9e,0xd8,0x8e,0x60,0xd9,0xb0,0x81,0xc6,0x14,0xe0,0x43,0x4b,0x81,0xd6,0x25,0x73, + 0xf4,0x94,0xe9,0x98,0x3a,0x53,0x19,0x3d,0x9f,0xb0,0x15,0xdf,0x92,0x43,0x0a,0xa0, + 0xf7,0xaf,0xdd,0xde,0xfe,0xad,0x76,0xfa,0xab,0x06,0xe8,0x9a,0xa0,0xd5,0x8d,0x33, + 0x6a,0x6b,0x4d,0xdd,0x79,0x5e,0xf3,0x6d,0x8c,0xa1,0xa5,0x90,0x9e,0x00,0x8d,0x5e, + 0xf8,0x18,0xd9,0x4c,0xd6,0x2d,0x74,0x14,0x91,0x74,0xf7,0xab,0x86,0x73,0x6c,0x8b, + 0x79,0xa9,0x5c,0x81,0xba,0x9a,0x4e,0xef,0x7d,0x20,0xd4,0xbe,0xd6,0x6d,0x77,0x3b, + 0xca,0x4f,0xdc,0x2b,0xf6,0x1c,0x39,0x49,0x77,0xff,0xbe,0xdf,0xbb,0x8f,0x6f,0xbf, + 0x2d,0x80,0x4d,0xfb,0x40,0x2d,0xe1,0x87,0x3a,0xb6,0x1b,0xd4,0xf8,0x9c,0xf0,0xb2, + 0xb4,0xe3,0x58,0xf0,0xf2,0xa6,0x5a,0x02,0xf8,0x1e,0x08,0x22,0x80,0xf8,0xa7,0x2d, + 0x3b,0xed,0x6e,0xaf,0x83,0x21,0xe7,0xb2,0xc5,0x05,0xe6,0x0e,0x9a,0x27,0x7a,0x36, + 0x41,0x2b,0xa4,0x1d,0x4e,0xdd,0x18,0x5f,0x8e,0xd3,0x38,0x35,0xf4,0x9d,0x6c,0x31, + 0x2f,0x27,0x16,0x9d,0x3c,0x81,0x96,0xc8,0x5a,0x24,0x2e,0xee,0x8f,0x27,0x1a,0x1f, + 0x47,0xc9,0x44,0xb6,0xb3,0x93,0x1e,0x95,0xc1,0xe5,0xd6,0x71,0x7d,0xfb,0x4e,0x00, + 0x05,0x7f,0x6a,0x63,0xda,0x9c,0x12,0x83,0x64,0xf6,0xb9,0xcc,0xe6,0xe5,0xc6,0x01, + 0xf7,0xb2,0xa1,0x72,0x00,0x36,0xab,0xb9,0x34,0x92,0x69,0x2e,0x24,0x64,0xbd,0xa4, + 0xd8,0x80,0x90,0xe5,0x61,0x1d,0x43,0x0e,0x54,0x8e,0xb7,0x4b,0x11,0x6d,0xa6,0x53, + 0x7c,0x3a,0xb2,0xb4,0xfe,0x73,0xe0,0x90,0x9e,0x05,0xed,0x24,0x2c,0xd5,0xc6,0x36, + 0x68,0x26,0x3f,0x93,0x7a,0x04,0xc2,0x5c,0x0e,0x15,0xdf,0x0f,0x6f,0x00,0x2e,0xb6, + 0x63,0x85,0x81,0x8f,0xc3,0x3a,0xc6,0x14,0x34,0xde,0x3b,0x6d,0x4c,0xd1,0x50,0x4f, + 0x4b,0xf9,0xcc,0x24,0x49,0x2a,0xdd,0x08,0xa5,0x44,0x01,0xe9,0x7b,0x7c,0x79,0x4a, + 0x4a,0x3a,0x2a,0x54,0x61,0xdd,0x16,0xb8,0x27,0x5a,0x1d,0x6d,0xa4,0x11,0xa1,0x93, + 0x3b,0x14,0xd5,0x1c,0xab,0xda,0x12,0x07,0xc4,0xab,0x69,0x69,0x46,0x4a,0x4e,0x43, + 0x3b,0x73,0x1b,0x77,0x34,0x46,0x1b,0xa4,0x6f,0x28,0x1c,0x11,0x20,0xf7,0x77,0x1f, + 0x2a,0x05,0xad,0x4c,0xfd,0xa2,0xe8,0x84,0xdc,0xd3,0xca,0x0a,0x8b,0x80,0xf4,0x43, + 0x47,0x54,0xa1,0xb2,0xf4,0x50,0xa6,0x48,0xe7,0x4e,0xcb,0xf5,0x21,0x2d,0xb2,0x1c, + 0x20,0x53,0x93,0x54,0xea,0xbb,0xa2,0x9c,0xed,0x23,0xa4,0xef,0xf0,0xb9,0xb8,0xf8, + 0x8e,0xf9,0x4b,0x4e,0x4b,0x67,0x36,0xe2,0xb5,0xd8,0x6d,0x00,0x3e,0x6f,0x6e,0xfb, + 0xf7,0x28,0x5f,0xc5,0xc0,0xa3,0xef,0x93,0x34,0xf6,0x26,0xa9,0x14,0x36,0x40,0x64, + 0xc1,0xe2,0x16,0x89,0x5f,0xf8,0x9c,0x29,0x08,0x2b,0x98,0x40,0xf2,0x18,0x0c,0xe7, + 0xbe,0x7b,0x9f,0xa3,0x12,0x1d,0x7e,0x5b,0x64,0x7e,0x30,0x85,0x8b,0x00,0x7e,0x68, + 0x68,0x17,0xd2,0x5a,0xf7,0x40,0x92,0x26,0xe1,0x1c,0xc9,0x17,0xf2,0x7b,0x8e,0xe9, + 0x21,0x6a,0x5e,0x2e,0x5c,0xc5,0xc3,0x04,0x6a,0xff,0x88,0x09,0x8a,0xc3,0x88,0x40, + 0x2b,0x67,0x62,0x11,0x06,0xa2,0x7f,0x3a,0xda,0x46,0x44,0xb0,0x49,0xed,0xf8,0xf5, + 0x89,0xa6,0x66,0x70,0xf1,0xdc,0x58,0x6d,0x16,0x1c,0xb3,0x0a,0xdc,0x2a,0xf3,0x6c, + 0x32,0xcb,0x2e,0x53,0x6a,0xbe,0x10,0x6c,0xdd,0xac,0x94,0x14,0x95,0x5d,0x96,0x4c, + 0x11,0x9c,0x28,0xf5,0x23,0x3c,0xef,0x11,0x57,0x94,0x01,0x08,0xf3,0x56,0xe1,0x54, + 0x03,0xe4,0x77,0x53,0x7b,0xf7,0xd9,0xcc,0x4d,0x19,0x0b,0x11,0x59,0x93,0xd9,0x91, + 0xea,0x77,0x62,0x16,0xfd,0x55,0x10,0x55,0x89,0x1d,0x26,0xa8,0x92,0x09,0x23,0x6c, + 0x46,0x55,0xf2,0x73,0x61,0x53,0xaf,0x1c,0xef,0x2e,0x12,0xa8,0x01,0xd5,0xe9,0x7d, + 0x4c,0x0d,0x57,0xb7,0x58,0x2f,0x1b,0xea,0xff,0xd7,0xdb,0xb5,0x3f,0xb7,0x6d,0x24, + 0xe9,0xdf,0xf5,0x57,0xd0,0xd8,0x9c,0x8f,0x08,0x21,0x8a,0xb4,0x23,0xef,0x86,0x14, + 0xa4,0x72,0xb2,0xce,0xae,0x2b,0xb6,0xe3,0xb2,0x9c,0xdc,0x5d,0x49,0x4a,0x8a,0x12, + 0x21,0x09,0x25,0x12,0xa4,0x09,0x50,0x8f,0xa5,0xf4,0xbf,0x5f,0x7f,0xdd,0x3d,0x2f, + 0x10,0x94,0x5c,0xb9,0x87,0xca,0xb2,0xc8,0xc1,0xbc,0x30,0x8f,0x9e,0xee,0x9e,0xee, + 0xaf,0x21,0x15,0xc3,0x7c,0xc3,0x8f,0x9e,0x63,0x1e,0xf6,0xc3,0xfc,0x9c,0x5d,0xba, + 0xb3,0xc3,0x10,0x8e,0x4e,0x84,0xf6,0xb3,0x6a,0x18,0x53,0x50,0x82,0xeb,0x51,0x3e, + 0x61,0xa1,0x40,0x42,0xaf,0xb7,0xec,0x23,0x2f,0xbb,0xb0,0x5d,0x30,0x08,0x90,0xd9, + 0xbb,0xe4,0xeb,0x13,0xa6,0xe4,0x7c,0x45,0xad,0x5c,0x1d,0xc2,0x31,0xb0,0x80,0x11, + 0xb6,0xe5,0xa4,0x7b,0xe9,0x98,0x91,0x72,0xbd,0xc1,0xaa,0x91,0x35,0x14,0x5b,0x8c, + 0x6e,0x98,0x50,0x95,0x33,0x33,0xbe,0xad,0xf3,0xe5,0x64,0xc2,0xe1,0xdf,0xcf,0xc1, + 0x0f,0x6c,0x2a,0x77,0xbb,0xd6,0x92,0xd1,0x5b,0x41,0x2b,0x24,0xfc,0x79,0xbe,0x68, + 0x2e,0x5c,0x35,0x15,0x76,0x57,0x07,0x20,0xaa,0xa5,0xdd,0xac,0x54,0x5a,0x49,0x8b, + 0x37,0xd7,0x8e,0xb2,0x1d,0x4a,0x68,0x7a,0xd3,0x79,0x4b,0xdb,0x56,0xfd,0xed,0x57, + 0xe1,0x01,0xc7,0x25,0x7d,0x6d,0x97,0xe9,0x81,0xa7,0x98,0x5a,0x52,0xcf,0x79,0x9a, + 0xda,0xa2,0xb7,0x63,0x8d,0x63,0x19,0x37,0xbf,0x86,0xad,0xcb,0xef,0xcf,0x07,0x5b, + 0x51,0x43,0x97,0x5e,0x6c,0xbf,0x7c,0xf9,0x4a,0x68,0x6e,0xd8,0x2d,0xb1,0x6f,0x32, + 0x04,0xc4,0x31,0x7e,0x4d,0x3c,0x9d,0x57,0x4c,0x8d,0x91,0x7c,0xd3,0x24,0x23,0x40, + 0x85,0x6f,0x5d,0x41,0x12,0xf8,0xf0,0xf9,0xa3,0xe2,0x35,0x02,0xd7,0xb2,0xc8,0x04, + 0x8c,0xa1,0x24,0x61,0x20,0xae,0xe7,0xee,0xaa,0x0e,0x87,0xc1,0x60,0xb9,0x1c,0x22, + 0x24,0xc8,0xdd,0xb0,0x59,0x76,0xd8,0xba,0xff,0x12,0xa1,0xff,0xe3,0x2f,0x87,0x6f, + 0xff,0xb3,0x65,0x12,0x5a,0x25,0xfb,0xd9,0xd9,0x43,0x5d,0x93,0xbb,0x34,0x7a,0xb0, + 0x6f,0x4a,0xa2,0x5f,0x3f,0xff,0xd8,0x92,0x2f,0xee,0x08,0x5a,0x11,0x43,0x82,0x13, + 0xb5,0xef,0x48,0x7d,0x59,0x4c,0x59,0x80,0xf9,0xf0,0xfe,0x23,0x94,0x9e,0xe0,0x05, + 0xf5,0x1a,0xc8,0xb3,0x7f,0xac,0xcf,0x0c,0x0a,0x75,0xe1,0x8f,0xbf,0x2c,0xc0,0xc5, + 0x6b,0x71,0x9b,0x50,0xeb,0x1b,0x8b,0x81,0xbc,0x01,0x70,0x5c,0x59,0xf3,0xcc,0xfa, + 0xc9,0x8c,0xa7,0xdd,0x79,0x79,0x55,0xcf,0x89,0x6d,0xbc,0xad,0x77,0xa3,0xcc,0x97, + 0x7b,0xb5,0xf2,0x19,0x52,0xf1,0x28,0x86,0x65,0x6c,0xba,0x9f,0xd9,0x6a,0x98,0x25, + 0xaf,0x12,0x30,0x13,0x3e,0xde,0xcf,0xe9,0xad,0xb5,0xf7,0x38,0xc7,0x96,0x53,0xcb, + 0x0e,0x9c,0x12,0xa9,0x87,0x95,0x04,0x67,0x2c,0xc3,0x62,0x8a,0x2d,0x2e,0x32,0x30, + 0x3f,0xc7,0x68,0x8b,0x35,0x61,0xe3,0xeb,0x2a,0x0a,0xf9,0x6b,0x23,0x28,0xcb,0x11, + 0xb0,0x98,0xd1,0xee,0x98,0xae,0x13,0x85,0xd3,0x45,0x3e,0xbe,0xc8,0xba,0x1c,0x17, + 0x86,0x8f,0xf4,0xc3,0x6c,0x91,0xc3,0x1d,0x51,0x88,0x90,0x3c,0xde,0x54,0xaa,0xa4, + 0x15,0x70,0x26,0x47,0xad,0xa1,0x05,0x99,0x16,0xe1,0xd3,0x3c,0x57,0x2a,0xb4,0xb8, + 0xbd,0xaf,0x6e,0x83,0x92,0xa7,0xa3,0x25,0x5f,0x08,0x48,0xde,0x52,0xda,0x44,0x62, + 0x6b,0xc1,0xb2,0x77,0xcf,0xcf,0x6c,0xb8,0x45,0x9b,0xbb,0x18,0xb7,0x34,0x2d,0xc8, + 0xe7,0xac,0x74,0x35,0xa7,0x5b,0x17,0x7e,0x36,0xe2,0x55,0xa6,0xcc,0x44,0x9a,0x5b, + 0x71,0xed,0xf1,0x0d,0x2d,0xcc,0x96,0x79,0x48,0xbd,0xbe,0x59,0x20,0x5c,0xea,0xf8, + 0x1e,0xa4,0x36,0x78,0xeb,0xec,0x6c,0xc1,0xdb,0xc1,0xf4,0x47,0xd6,0x91,0x49,0xee, + 0x05,0x02,0xe8,0xe1,0xbb,0x5f,0x3e,0xb3,0x00,0xaa,0x46,0x82,0x89,0xfd,0xd0,0x57, + 0x8d,0x8b,0xc6,0x54,0x97,0xe8,0xce,0xe6,0x98,0x41,0xb0,0x6f,0x3e,0xf8,0x55,0xc2, + 0xe6,0xc5,0x6e,0x8e,0x20,0xdc,0x83,0x83,0x4c,0xee,0xee,0xbe,0xdc,0x55,0x7d,0x89, + 0x17,0x02,0xde,0x7e,0x0c,0x54,0x30,0x7e,0xa4,0x77,0xd9,0xdd,0x1a,0x51,0x9e,0xff, + 0x62,0x83,0xca,0xc6,0x6c,0x9d,0xd2,0x56,0x23,0xc6,0xc7,0x1c,0x74,0xe6,0xce,0x45, + 0x63,0xb3,0x6b,0x2f,0xab,0x20,0x36,0x7b,0xd2,0xca,0xba,0x17,0x5d,0x8d,0xc8,0xbe, + 0x63,0x22,0xb2,0xef,0x48,0x44,0x76,0x5d,0x9a,0x2e,0xc8,0xba,0x1f,0x73,0x1d,0x52, + 0xbc,0x2c,0xbd,0xb2,0xf5,0x66,0xfc,0x62,0x77,0xb7,0xff,0x3d,0x47,0x59,0x4f,0x34, + 0xfe,0xba,0x10,0x3a,0xa9,0xc2,0xec,0xa9,0x48,0x97,0x26,0x6a,0xe7,0xbd,0xa0,0xf4, + 0x7a,0x00,0x68,0xed,0x84,0xd5,0x99,0x49,0x8b,0xd5,0x3d,0x3f,0x1e,0xfe,0x46,0xe4, + 0x8a,0xf9,0x90,0x72,0x87,0x04,0xa7,0xdd,0x50,0x37,0xf0,0xf9,0xbf,0x3e,0xbe,0x39, + 0x4c,0x23,0x48,0xcc,0xf4,0xae,0xf3,0x59,0x51,0x66,0x49,0x75,0x5b,0xfd,0x81,0x8b, + 0x60,0x6a,0x22,0x91,0xd3,0x2b,0xb9,0x58,0xcc,0xff,0xa0,0x64,0xfe,0x0b,0xef,0x82, + 0x64,0x44,0x4d,0xfc,0x81,0x52,0xe0,0x49,0x12,0x92,0x2a,0xce,0xb2,0x44,0xf8,0x39, + 0xa2,0x70,0xf0,0x9d,0xac,0x48,0x56,0x4f,0x68,0xd5,0xfc,0xa1,0x11,0xbb,0x03,0xbf, + 0x78,0x01,0xd3,0xc9,0xd3,0x15,0x14,0x48,0xd5,0x60,0xbb,0x9f,0x54,0xa7,0x93,0xc1, + 0xd1,0x49,0x02,0x60,0x66,0xf9,0x7b,0x8b,0xd4,0x31,0x09,0x35,0xd5,0x20,0x8a,0x92, + 0x72,0x79,0x81,0xe4,0x32,0x9b,0x20,0x19,0x08,0x51,0x03,0xb1,0x46,0xc0,0x95,0x69, + 0xa1,0x9f,0x89,0x27,0x94,0x4f,0x0f,0x7e,0x68,0xe3,0x49,0xfe,0x19,0x63,0xab,0x97, + 0xfe,0xf4,0xb5,0xcb,0x8d,0x0a,0x4e,0x92,0x98,0xbc,0x1a,0xa7,0x7b,0x3c,0xa4,0x8e, + 0x98,0xcb,0x54,0x7b,0xb7,0xa7,0xf6,0xb8,0xd4,0x71,0xa3,0x4e,0x69,0xf6,0x3a,0x62, + 0x0f,0x63,0xea,0x40,0x7a,0x75,0xf4,0x12,0x06,0xef,0xab,0xa8,0x83,0x4f,0x9d,0xe8, + 0x21,0x32,0x17,0xab,0x57,0x47,0x2f,0x10,0xd2,0xe6,0x45,0x5c,0x89,0xef,0x82,0xe8, + 0x2d,0x91,0x8f,0xb6,0xe7,0xd5,0x51,0xff,0xe4,0x24,0xf6,0xf3,0xf5,0x5d,0xbe,0xd2, + 0xe6,0xeb,0x44,0xad,0x88,0xf3,0x76,0xd0,0xd8,0x89,0x73,0x42,0x0c,0x6d,0xf8,0x57, + 0x5b,0x41,0x1b,0x35,0x13,0x14,0x28,0x46,0x03,0xb3,0x98,0x9a,0x95,0x3f,0xaa,0x0d, + 0xda,0x0e,0xcb,0xb7,0x5c,0x05,0x26,0x85,0x76,0x63,0xff,0xe5,0xb0,0x55,0x33,0xf2, + 0x7f,0xe0,0x9a,0x1e,0xac,0xb9,0x71,0x91,0xf6,0x87,0x85,0x6f,0x6e,0x5c,0xb0,0xb9, + 0xb1,0x21,0x13,0xcd,0xc1,0xda,0x83,0x17,0x11,0x9b,0xe3,0xa2,0x13,0x75,0xa3,0xce, + 0x39,0x86,0xcd,0xd8,0x16,0x03,0x4e,0x1a,0x49,0x32,0x88,0x41,0xe7,0xeb,0x65,0x78, + 0x08,0x9b,0xcb,0x19,0x2c,0x1d,0x5e,0x0a,0x69,0x35,0x74,0x2b,0xc6,0xf5,0xd9,0xe2, + 0x32,0xd4,0x30,0xc4,0xf2,0x37,0xc5,0x72,0xda,0x96,0x70,0xb6,0x0c,0x62,0x90,0xd2, + 0xe7,0x20,0x5c,0xbb,0x1a,0x16,0xb7,0x8f,0x6f,0x3a,0xf1,0x37,0x3b,0x0a,0x87,0x2c, + 0x4b,0x73,0xaa,0xb1,0xc3,0x95,0x36,0x9a,0x45,0x59,0x5a,0x56,0x3c,0x34,0x37,0xf3, + 0x71,0x1f,0xb0,0xbb,0x71,0x77,0x3e,0x2b,0xce,0x46,0x15,0xbd,0xb2,0xee,0x39,0x91, + 0x70,0x22,0x5d,0x52,0xa6,0x7e,0xa5,0x21,0xa6,0x7e,0x96,0xfd,0x6d,0x56,0x53,0x87, + 0xa5,0x0d,0x2e,0xe8,0x84,0x46,0x5e,0xe1,0xd5,0x29,0x61,0x11,0xeb,0x56,0x4d,0x92, + 0xb1,0xb6,0x0c,0x0f,0x8e,0xa2,0x3e,0x55,0xff,0x82,0x7e,0x5f,0xd2,0xef,0x77,0xf4, + 0xbb,0x4b,0xbf,0xaf,0xe8,0xf7,0xaf,0xf4,0xfb,0x37,0xfa,0xfd,0x9e,0x7e,0x81,0x15, + 0xc4,0x18,0x20,0x51,0x1f,0x59,0xfb,0x2f,0xa3,0x13,0x8d,0xcc,0x1e,0x82,0x68,0xd8, + 0x1d,0xa8,0xe6,0xd8,0x62,0xad,0x4e,0x7d,0x32,0x0f,0x8e,0xf2,0x13,0x9a,0x60,0xea, + 0x1e,0xa6,0x41,0xbb,0xee,0x3f,0xa3,0x9d,0x19,0x7e,0x35,0x94,0xe9,0xde,0xc6,0x82, + 0x7f,0xa8,0xbf,0x72,0x30,0xc5,0x67,0x97,0x33,0x22,0x23,0x65,0x02,0x21,0xd9,0x84, + 0xb0,0x5c,0x56,0x6c,0xa0,0x42,0xe3,0x3a,0xdd,0xa6,0x2f,0x86,0xc6,0x8d,0xaa,0x37, + 0xc5,0x38,0xa5,0x04,0xeb,0x40,0x3b,0xef,0xe0,0x9b,0xc0,0x79,0xff,0x93,0x21,0x2d, + 0xf7,0xbd,0xe7,0x92,0xb2,0x6d,0x8c,0x0b,0xc6,0x1b,0xa3,0xa3,0x8f,0xf3,0x6b,0x06, + 0xc1,0xf5,0x82,0xa3,0x53,0x97,0x86,0xe3,0xd0,0x18,0x87,0x3e,0x0f,0xb7,0x50,0xbb, + 0x1f,0xf2,0x1c,0x70,0x5b,0x6c,0x0d,0xd8,0xe6,0x9e,0x20,0x8d,0x2f,0xee,0x8d,0x0b, + 0x02,0x62,0x93,0xe0,0x89,0xdc,0xcb,0x4b,0x19,0x7c,0x3f,0xcf,0x17,0x65,0xc5,0x5f, + 0x65,0x39,0xf1,0xbb,0xc5,0xc1,0xbb,0xad,0xbd,0x89,0x0b,0x58,0x52,0x1f,0xc5,0x7f, + 0x8c,0x10,0x8a,0x48,0x5e,0xd2,0x0c,0x6a,0x74,0xc1,0x3a,0x7f,0x1b,0x5a,0xbb,0x35, + 0x0e,0xcb,0x30,0x3c,0x9b,0x06,0xac,0x75,0x23,0xed,0xe3,0x5a,0x44,0xd8,0xad,0x3f, + 0x60,0x35,0xc2,0x3f,0xd1,0xe6,0xcb,0x25,0xbe,0x0d,0xed,0x8a,0x76,0x88,0xef,0x6b, + 0xf3,0x02,0xb7,0x56,0x3b,0x51,0xde,0x41,0xbc,0x7a,0x9f,0x95,0x97,0x7c,0x45,0x1d, + 0x75,0x38,0x1e,0xf2,0x6f,0xc8,0xc5,0xa0,0x6e,0x7e,0x36,0x2c,0x75,0xe8,0xa4,0x05, + 0xfd,0x51,0xc0,0xec,0x91,0xc6,0x92,0x97,0x24,0x6e,0xd1,0xc6,0xbf,0x3e,0x38,0x1e, + 0x77,0x8e,0xbb,0xe6,0x3f,0xcf,0x62,0xfc,0xfc,0x86,0x73,0x1d,0xa0,0x28,0x87,0x6a, + 0x37,0x57,0x2a,0xbf,0x7c,0x7e,0xcd,0xf7,0x32,0xee,0x76,0xc7,0x73,0x96,0xa2,0x82, + 0xd0,0x61,0x30,0xe6,0x28,0xee,0x40,0xa2,0xf5,0xfe,0x1f,0x5a,0x13,0x61,0xb0,0x17, + 0xc4,0xf5,0x40,0x75,0x07,0x7e,0x66,0x2e,0x34,0x9b,0xab,0xd5,0x9b,0x1b,0xf1,0x06, + 0x14,0x43,0x8d,0xa8,0xb3,0x15,0x1d,0xbb,0x3b,0xab,0xbd,0x22,0xbb,0xd9,0x57,0x13, + 0xe5,0x63,0xbd,0x3b,0x39,0x8e,0xba,0xf4,0x79,0x6f,0x5b,0xee,0x5f,0xe8,0xa1,0xcc, + 0x56,0x69,0xae,0xbc,0x2f,0x96,0xf9,0x58,0x22,0x33,0xce,0xcb,0x6e,0x64,0xa8,0xa9, + 0xdf,0xb9,0xcf,0xb8,0xb7,0xbf,0xcc,0x26,0x73,0xbd,0x92,0x2a,0x97,0xd3,0xe9,0x08, + 0xd1,0x23,0xf9,0x1b,0x6e,0x45,0xf3,0x5b,0x6e,0x92,0x4e,0x6e,0xd4,0x0a,0xa8,0x1e, + 0x5c,0x83,0x77,0xa3,0x3a,0x68,0x63,0xfe,0x4f,0xaa,0x45,0xa7,0x8f,0x97,0x94,0x37, + 0x43,0x67,0x53,0x30,0x7c,0x68,0x26,0xf2,0x93,0x69,0x08,0xa2,0x64,0x0b,0xa6,0x3a, + 0x74,0xe4,0xf1,0x44,0xd1,0x5f,0xb9,0x67,0x96,0x1f,0x73,0x25,0x91,0xb4,0xce,0x8d, + 0x21,0x0f,0xfa,0x02,0x49,0xf0,0xb8,0xc0,0xf8,0xe0,0x10,0xda,0x23,0xea,0xb2,0xdf, + 0xaa,0xff,0x40,0x87,0x47,0x99,0xad,0x15,0xb8,0xe4,0x2f,0x6d,0xfe,0x3d,0xbe,0x2f, + 0x77,0xe5,0x34,0x14,0xf7,0x5a,0x09,0xd5,0x40,0x36,0xfc,0x94,0x6b,0xe6,0x21,0x52, + 0xc2,0xd9,0xa6,0xd4,0x7f,0x8a,0x06,0xab,0x1c,0x29,0x23,0xf6,0x3e,0xf4,0xf6,0xce, + 0x30,0x43,0xcb,0x5c,0xca,0x25,0xa7,0xd1,0x0b,0xb9,0xd7,0xf6,0x94,0x4e,0x5e,0x13, + 0x73,0xa3,0x7c,0x52,0xe6,0xdc,0xe9,0xa0,0xb4,0xa8,0xf2,0x04,0x0d,0x3f,0x8b,0xfa, + 0x2d,0xdc,0xda,0x1e,0x8b,0xb0,0x08,0xcc,0x0a,0x28,0x79,0xac,0x74,0x85,0xb4,0xa3, + 0x8e,0xe3,0xee,0x94,0x7c,0xd1,0x26,0x84,0xb8,0x0c,0x14,0xb0,0xd6,0x55,0x01,0xaf, + 0xa9,0x2e,0xaf,0xe9,0x8f,0xbc,0x03,0x4a,0x5c,0x29,0xd3,0x26,0x83,0x2a,0x93,0xd7, + 0xeb,0x62,0xc9,0xb7,0x90,0x53,0xd1,0xf6,0xf3,0xc5,0x50,0xd6,0x15,0x8e,0xbb,0x45, + 0x8c,0x7d,0x95,0x67,0xaa,0xdb,0x51,0x1c,0x04,0xe3,0xcc,0xb3,0x46,0x56,0xea,0xeb, + 0xf2,0x70,0x79,0x01,0x8c,0x92,0xb6,0x3d,0xa4,0x9f,0xd9,0x62,0xc4,0xcb,0x06,0xa6, + 0x7f,0x60,0x96,0x47,0x79,0x51,0x3a,0x33,0xc1,0x60,0x81,0x53,0x1a,0x55,0xe6,0x93, + 0xbd,0x7a,0x05,0x3e,0xfe,0x78,0x2d,0x53,0x9d,0x36,0x76,0x29,0x39,0x3d,0x3a,0x91, + 0x8f,0xd9,0x24,0xdd,0xee,0x87,0xad,0xbd,0x83,0x87,0x4e,0xfb,0x72,0x74,0x97,0x7c, + 0x09,0x50,0x69,0xbe,0xe8,0x21,0xb9,0x73,0x5c,0x76,0x76,0xd6,0x80,0xad,0x38,0x4f, + 0x70,0x20,0xc3,0xff,0x46,0x20,0x68,0x4e,0x9e,0x3f,0xa7,0xea,0xba,0x6c,0x30,0xf2, + 0x8b,0x4b,0x8d,0xf7,0x7a,0x01,0xd4,0xd5,0xc3,0x46,0xa8,0x2b,0xea,0xd5,0x7b,0x66, + 0xa0,0x48,0x98,0x30,0x38,0x54,0x29,0x7d,0xf6,0xe2,0x1e,0xa3,0x53,0x7c,0x6e,0x88, + 0xb7,0x92,0x56,0xbc,0x9a,0xa8,0x30,0x41,0xcb,0x65,0xd0,0xd3,0xc8,0xc2,0xd7,0x25, + 0x8e,0x1b,0x0e,0x13,0x21,0xb5,0x96,0x52,0xea,0xda,0x0a,0x01,0xd7,0xa5,0xe4,0x9c, + 0xcc,0xd2,0xb2,0x5b,0xcd,0xde,0x41,0x6f,0x2c,0x1e,0x7f,0xa8,0x08,0x7e,0xc9,0x13, + 0x0c,0x12,0x46,0x71,0xcb,0x5b,0x7e,0xeb,0x48,0x01,0xda,0xd9,0x2a,0xcd,0x88,0x1f, + 0x09,0x6b,0xe2,0x26,0x2b,0x3b,0x28,0x93,0x19,0x10,0x25,0x7b,0x31,0xd5,0x2f,0x4c, + 0x6b,0xe6,0xc5,0x49,0xe6,0xd6,0x4c,0x14,0x8e,0xef,0x7a,0xcf,0x9f,0xdb,0x69,0xaa, + 0xa8,0x27,0x71,0x2c,0xcf,0x6d,0x31,0x15,0x05,0x50,0x95,0x7a,0x31,0xf8,0xa3,0x81, + 0x64,0xe3,0x5c,0xf8,0xaa,0xc7,0x6f,0x34,0x30,0x33,0x67,0xfd,0x3a,0x24,0xab,0xd4, + 0x6b,0x32,0x7f,0xa7,0x99,0x31,0x8e,0xe1,0xe4,0x04,0x63,0x69,0xd8,0xde,0xd2,0x32, + 0xbd,0x44,0xd7,0x68,0x7a,0xda,0xc7,0x87,0x9d,0x18,0x7f,0xbb,0xdf,0x5a,0xb6,0xf7, + 0xd9,0x34,0x0e,0xd8,0x2c,0x2b,0x3d,0x19,0x3e,0x1a,0x0c,0xab,0x66,0x45,0xfa,0x63, + 0xd3,0x4a,0x04,0x6b,0xcc,0x11,0x7b,0xa4,0xb7,0xe6,0x95,0xb6,0xa7,0x24,0x46,0x99, + 0x71,0x48,0x20,0x2c,0x8f,0x53,0x24,0xa9,0x04,0x4a,0x5c,0x1b,0xa7,0x75,0x69,0x2b, + 0x55,0x6f,0x75,0x32,0x44,0x42,0x65,0x70,0x9a,0x0a,0x08,0x5c,0x2b,0xd4,0xdd,0xd1, + 0x8c,0xa6,0x01,0x7a,0xd6,0xe9,0xc7,0x43,0xa9,0xd1,0x7f,0x24,0x0f,0x1e,0xcc,0x0a, + 0x92,0x47,0xe1,0x2a,0x02,0xb3,0x78,0xc4,0x5d,0x98,0x94,0x0d,0x91,0x45,0x84,0x9b, + 0xbd,0x0e,0x0b,0xad,0x2d,0x15,0x70,0x5a,0x22,0xdf,0x70,0xf7,0xae,0x13,0x33,0x13, + 0x1f,0x66,0x55,0xc6,0x23,0x97,0x5c,0xc7,0x46,0x9c,0xf1,0x07,0x8e,0x0a,0xf2,0xc8, + 0xa1,0x98,0xa1,0x99,0x3a,0x08,0x66,0x15,0x34,0xcc,0x2f,0xd7,0x4a,0x47,0x18,0xf0, + 0x91,0x7c,0x00,0x0c,0x15,0x67,0x44,0x40,0x31,0x7c,0x0d,0x18,0x6f,0x58,0x0c,0x07, + 0x34,0xc2,0x13,0x63,0xea,0x9c,0xbb,0x7b,0x44,0x84,0x81,0x65,0x19,0x92,0x7c,0xd1, + 0x10,0x28,0x63,0x5e,0x28,0x66,0x41,0x2d,0x17,0xac,0x32,0xc1,0x00,0x89,0x0a,0xc7, + 0x20,0x10,0x88,0xb1,0xe6,0xa8,0x25,0xa9,0x8f,0x95,0x83,0x86,0x08,0x6c,0xce,0x5a, + 0x51,0xa3,0x3a,0xd2,0xf0,0xd5,0x16,0xf4,0xc0,0x47,0x2f,0x30,0xa4,0x62,0x34,0x49, + 0x8d,0x97,0xeb,0x41,0x44,0x87,0xc6,0xb5,0x9a,0x0f,0xf3,0x61,0xb8,0x2c,0x70,0x7b, + 0x13,0x0d,0xda,0x9a,0x4d,0x85,0xb2,0x83,0xc8,0xf2,0x74,0xaa,0x2a,0xe4,0x33,0xf3, + 0xf4,0xae,0x75,0x09,0x70,0xc6,0x81,0xfa,0x81,0xd6,0x87,0x58,0xa4,0xb6,0xda,0x10, + 0x8b,0x40,0x6d,0x65,0x35,0xbb,0x4a,0x30,0x78,0x4e,0x6e,0x03,0xe8,0x1a,0xd5,0xeb, + 0xa9,0x8c,0xc0,0xa6,0x6a,0xaf,0x3c,0x15,0xcd,0x41,0x7f,0x77,0x50,0x78,0x28,0xca, + 0x35,0xa4,0x06,0x39,0xd5,0xda,0x76,0x8f,0x5b,0xc2,0x1c,0x1e,0x88,0xcc,0xe2,0xc8, + 0x29,0xce,0xa7,0xcd,0xb4,0x8b,0x75,0xe7,0x9d,0x38,0xea,0x81,0x38,0xbb,0x4d,0xc3, + 0xc3,0x4a,0x89,0x02,0x67,0xb7,0x1e,0x58,0xfe,0x09,0x18,0x78,0x7f,0x5e,0xb2,0x2f, + 0xa3,0xe6,0x5e,0x27,0xbe,0x36,0x3e,0x0f,0x53,0x06,0xe0,0x3f,0x30,0x15,0x36,0xfb, + 0x77,0x8a,0x35,0x11,0x13,0x49,0x18,0xe5,0x93,0xfa,0x53,0x7d,0x36,0xdc,0xba,0xec, + 0xa4,0x01,0xb4,0x44,0x79,0xa1,0x20,0xf0,0xb9,0x45,0x0c,0xe4,0x18,0x89,0x52,0xe2, + 0x20,0xda,0x5b,0xee,0x47,0x1d,0xde,0x8e,0xd1,0xde,0x0e,0x7d,0xe6,0x3d,0x16,0x77, + 0xd0,0x86,0xc2,0xe0,0x91,0x34,0x90,0xd1,0xd6,0x3c,0xf8,0x77,0x46,0xa8,0x90,0x76, + 0x89,0xc6,0x09,0x52,0x85,0x81,0x7b,0x17,0x7c,0x0a,0xd9,0xb9,0x34,0x4a,0x3e,0x3c, + 0xe0,0x10,0xdf,0x37,0x46,0x79,0xc1,0x43,0x27,0x8b,0xf5,0xea,0x93,0xf7,0x71,0xc4, + 0xf1,0x63,0x57,0x1a,0xfc,0x53,0xc7,0xbd,0xd5,0x65,0x87,0x8c,0x06,0xa0,0x1b,0x3b, + 0x84,0xb3,0x22,0xcd,0x01,0xe9,0x25,0x33,0xd8,0x1c,0x31,0x17,0xea,0xff,0x59,0x21, + 0x73,0x38,0x2b,0x38,0xca,0x8d,0x74,0xe5,0x6d,0x51,0xcd,0x7e,0xcb,0xb3,0x9b,0x78, + 0x2d,0xa5,0xbd,0x62,0x3b,0xf2,0x01,0xed,0xbc,0x11,0xd8,0x40,0x8e,0x8a,0xbc,0x06, + 0xcb,0x9e,0xbf,0xc7,0x2b,0x8e,0x8d,0xcb,0x8e,0x2c,0xaa,0xf0,0x68,0xd3,0xb5,0x46, + 0x8b,0x4b,0xff,0xd2,0x82,0x6f,0x23,0x44,0x66,0x6f,0x10,0xe6,0xdf,0xee,0xc7,0x83, + 0xb6,0xe6,0xe9,0x8c,0x3b,0xb5,0xca,0xfe,0x2d,0xfc,0xce,0xb5,0xea,0x98,0xd5,0xfb, + 0xf4,0x9a,0x1d,0x47,0xdb,0x66,0x80,0xb2,0x54,0x8b,0x12,0x85,0x61,0x60,0xed,0x2c, + 0x00,0xd6,0xce,0x8b,0x79,0x1a,0xec,0x11,0x1a,0xa5,0x62,0xae,0xbe,0xd3,0x58,0x78, + 0x43,0x7c,0xb5,0x8c,0x24,0xea,0xba,0xcc,0x6f,0x79,0xa7,0x98,0x3d,0x37,0x64,0x66, + 0x59,0xe2,0x7d,0x9b,0xb0,0x6f,0x23,0xc3,0xe9,0x8a,0xa3,0x5e,0x35,0xba,0x62,0xf6, + 0xb8,0x35,0x5a,0x5c,0xb0,0xce,0x80,0x6d,0xc7,0x67,0xe7,0xe7,0xb0,0x89,0x12,0x58, + 0xbb,0xda,0x5b,0x10,0xeb,0xf2,0x73,0x76,0xd7,0x6e,0x1e,0xda,0x95,0x6d,0x7a,0xe3, + 0xb8,0x3f,0x18,0x85,0x6a,0x09,0xd8,0x6c,0xf6,0xcd,0x30,0x23,0xa3,0xa9,0xe1,0x96, + 0x05,0x5c,0x68,0x03,0xad,0x68,0x60,0xe4,0x92,0xc9,0xd9,0xdc,0x8e,0x69,0x0f,0xfa, + 0x1c,0x4b,0x4f,0x36,0x33,0x5a,0x05,0x2d,0x79,0x51,0x6c,0x14,0x7b,0x54,0x5e,0xfb, + 0xfa,0xfc,0x79,0xb1,0xc7,0x9b,0xdb,0x7c,0xc5,0x23,0x5c,0x48,0xbe,0xae,0xda,0x05, + 0xce,0x52,0x7e,0x68,0x13,0xe2,0x02,0x11,0x6e,0xd0,0x3c,0xf2,0x19,0x72,0xe1,0x01, + 0xbd,0xb9,0x9a,0xf7,0xe9,0x7d,0xec,0x68,0x35,0xbc,0x17,0x6a,0x18,0xda,0x51,0x34, + 0x03,0xe1,0xc6,0xa8,0xe7,0x62,0xfd,0x3a,0x86,0x7d,0x1d,0xdd,0x7d,0x3a,0xc3,0x31, + 0xc2,0x76,0x83,0x01,0xc2,0x7b,0x76,0x0d,0xaa,0x83,0xbc,0x7f,0x17,0x3b,0xd8,0x76, + 0xfc,0xe0,0x4b,0x27,0x9b,0xea,0xdb,0x88,0x16,0xbf,0x68,0x44,0x8b,0x07,0x75,0x18, + 0x8a,0x43,0xb5,0xb7,0xdb,0xf4,0x15,0x3a,0x0b,0x8b,0x64,0x95,0xd7,0x23,0xe0,0x62, + 0xf7,0x80,0x41,0x61,0xb3,0x11,0xab,0x7b,0x87,0x82,0xff,0xc8,0x7c,0x70,0x81,0xc7, + 0xe8,0xc0,0xe7,0x7c,0xf6,0xc9,0xdc,0x16,0x1d,0xfa,0x45,0xbd,0xf0,0x7a,0x36,0x49, + 0xa3,0xec,0x85,0x1b,0xa7,0x2e,0x44,0x95,0x95,0xa5,0x23,0x9b,0xb6,0xa4,0x2e,0x73, + 0xaf,0x19,0x3f,0xbe,0x82,0x56,0xbe,0x27,0xcb,0xbc,0xcb,0x37,0x13,0xa9,0xdd,0xc6, + 0x43,0xd3,0x76,0xad,0x86,0x07,0xd3,0xa9,0x4e,0x3a,0xae,0x55,0x63,0x4a,0xf4,0xfc, + 0xf4,0xfd,0x7a,0x05,0xd2,0x9a,0xbe,0x95,0xa3,0x1a,0xb6,0x0b,0x0f,0x2a,0x27,0x04, + 0x4f,0xbc,0x41,0xbe,0x95,0x9d,0xe3,0xce,0x50,0xdd,0x2a,0xb6,0x80,0xa5,0x76,0xd5, + 0xe2,0x6e,0x85,0x54,0x9a,0x4c,0x41,0xe9,0xa5,0xb1,0x63,0x0c,0xef,0x76,0x41,0xeb, + 0xff,0x41,0xfc,0xb2,0x68,0x26,0x1f,0xfc,0x45,0xcb,0xab,0x7d,0x7d,0x8d,0x29,0xd0, + 0xa0,0xe7,0xc5,0xe5,0xbd,0x85,0xd9,0x12,0x0f,0x6b,0xb2,0xf4,0x7a,0x45,0x08,0xf0, + 0x16,0xd4,0xe3,0xc5,0xd2,0x71,0xaf,0x95,0xf4,0x5f,0xf4,0xbe,0xaa,0x3a,0xa6,0xb1, + 0xf5,0x7e,0xfd,0x94,0x57,0x5f,0xd7,0x19,0x62,0xba,0x1a,0xf6,0xa1,0xc4,0xe8,0xc5, + 0xde,0xa1,0xe7,0x72,0x77,0x03,0xbe,0x8a,0x88,0x6b,0xd4,0xb8,0x49,0x87,0x1e,0xe5, + 0xf5,0xf1,0x26,0xb8,0xd4,0x6b,0xa0,0x6c,0xff,0x3a,0x8f,0xee,0xef,0xdd,0x57,0x58, + 0x60,0x47,0x26,0x56,0x64,0x5a,0x4b,0x3f,0xe8,0x0f,0xb0,0xdc,0x9b,0xda,0xd1,0x65, + 0x65,0x35,0x11,0xb1,0x3b,0x4c,0x25,0x3e,0x76,0xb8,0x31,0x6a,0x4e,0xe9,0xdc,0xce, + 0x9b,0x82,0x6f,0x0a,0x56,0x5f,0x55,0x3f,0x4b,0xa6,0x5f,0x73,0x16,0x70,0xa1,0xd3, + 0x29,0x86,0x7d,0xd8,0xd0,0x66,0x79,0x36,0x9a,0x67,0x91,0x25,0x19,0xae,0xff,0xcd, + 0xcc,0x20,0x18,0x6e,0x17,0xa7,0xc3,0x5b,0x67,0x41,0xd5,0x52,0xf7,0xc4,0x0c,0xec, + 0xbb,0x88,0xba,0x4b,0x2f,0x75,0x56,0x2d,0x26,0x3f,0xe3,0xba,0x66,0xc3,0x44,0xa9, + 0xca,0xf9,0x61,0xeb,0x6b,0xd6,0x07,0x6b,0x59,0x9b,0x56,0xc7,0x19,0x07,0xe2,0xa0, + 0xea,0xe6,0xac,0x6f,0xfc,0x3b,0xd0,0x67,0xee,0x55,0xa3,0x14,0xa4,0x2a,0x15,0x0a, + 0xe3,0x72,0x40,0x8d,0x9f,0x9e,0x9d,0x22,0x26,0x07,0xf2,0xb4,0x39,0x88,0x59,0x14, + 0x5b,0x30,0xd0,0x67,0x3b,0x47,0xc7,0x8b,0xe3,0xe2,0x44,0x45,0x03,0xbe,0x96,0xb0, + 0x15,0x34,0x4e,0x1c,0xf7,0x69,0x3a,0x66,0x49,0xfb,0xe3,0x68,0x01,0x55,0x02,0x0a, + 0xe9,0x03,0x58,0x20,0xa6,0x6e,0x54,0x65,0x9e,0x91,0xa8,0xe1,0x34,0x69,0x9e,0xa9, + 0xac,0xa3,0x4f,0xf4,0x05,0x17,0x2e,0x9c,0xa5,0xa3,0xdf,0x86,0xc1,0xac,0x08,0x8a, + 0x4c,0x58,0x2a,0xd4,0xf1,0x7d,0xd0,0x48,0xb5,0xaa,0x92,0xdb,0xde,0x16,0x9e,0x46, + 0xf4,0xd6,0x97,0xd9,0x04,0xee,0xef,0x56,0xb1,0xd7,0x8d,0x82,0x8d,0xe3,0xd5,0x9b, + 0xe2,0xc6,0x74,0xe5,0xb5,0x6d,0xba,0xd3,0x74,0x0c,0x7b,0x34,0x11,0x33,0xad,0xce, + 0xe0,0x28,0xd1,0x74,0x94,0xb9,0x61,0x72,0x57,0x3e,0x90,0xe2,0x91,0x64,0x95,0x63, + 0x34,0x0d,0xf7,0xc7,0x8b,0xfb,0xe3,0x62,0xa7,0x81,0xa3,0x76,0xfa,0xab,0x09,0xeb, + 0xaf,0x64,0x34,0x65,0x0a,0x27,0xf7,0xf7,0x13,0xc3,0x84,0xf4,0xc0,0x95,0x44,0x7f, + 0x31,0x82,0xe9,0x70,0x4d,0x67,0x4a,0x6c,0x20,0x5b,0x06,0x94,0x0a,0xf0,0x81,0xf0, + 0x1d,0x55,0xb9,0x35,0x49,0x27,0x1e,0x2b,0xd5,0x3e,0x18,0x1c,0xed,0x7f,0x73,0x72, + 0x0f,0xe3,0x60,0x68,0x76,0x8f,0xcb,0x6f,0xe9,0xfb,0x5f,0x4e,0x62,0xab,0x2c,0x43, + 0x3d,0xd5,0x6c,0xc2,0x46,0xa4,0x50,0xbb,0x8f,0xd8,0x88,0x9c,0xcd,0xcf,0xcf,0x16, + 0xf9,0xbc,0x62,0x6e,0xc7,0x29,0x1a,0x26,0x81,0x32,0x01,0xef,0xef,0xfb,0xc4,0x7e, + 0x7a,0x7b,0xf8,0x33,0x4c,0x3c,0x76,0x7e,0x67,0x87,0x85,0x6f,0x76,0x12,0xf1,0x5c, + 0x28,0x9b,0x5c,0x16,0xc4,0xc1,0x29,0xf0,0x5c,0xf0,0xcd,0x5d,0x9d,0x17,0x43,0x82, + 0x0a,0xad,0x4b,0x06,0xd5,0x29,0x82,0x7c,0xcd,0x35,0x4c,0x75,0xc8,0x65,0xe8,0xca, + 0xb1,0xf3,0xbb,0x5f,0xaa,0x31,0x43,0xdb,0xf8,0x5a,0xdc,0x1b,0xdf,0x8c,0x98,0x72, + 0x8b,0xe9,0xe8,0xba,0x03,0xc7,0xce,0xef,0xce,0x31,0x86,0xb2,0x8d,0xd5,0x31,0xa6, + 0x74,0x9e,0x31,0xf0,0xa5,0xc9,0x6e,0xec,0xb5,0x41,0xe0,0x18,0x53,0x6a,0x1d,0xa1, + 0x9b,0x0a,0xc6,0x09,0x29,0xe5,0x9a,0xa3,0x0a,0x6b,0xce,0x5a,0x02,0x77,0xd5,0x86, + 0x49,0xec,0x3d,0x02,0x3e,0x1d,0x97,0x54,0x40,0xc1,0xa6,0xe4,0xbe,0x9e,0xb7,0x4a, + 0x00,0x29,0x80,0x68,0x97,0x5e,0x15,0x35,0xa8,0xac,0xa0,0x86,0x6a,0x0d,0x1d,0x63, + 0xc7,0x37,0x02,0x08,0x51,0x2d,0x60,0xa6,0xc2,0x10,0x37,0xc6,0x62,0x60,0x9e,0x01, + 0x9c,0xa8,0x10,0xf8,0x1c,0x45,0x92,0x98,0x2e,0x4b,0x03,0xf8,0xe8,0xba,0xc0,0xa6, + 0xfc,0x41,0xc3,0x8b,0xba,0xd3,0x06,0x55,0x3e,0x6a,0xdd,0x2c,0x60,0xde,0xcf,0x3b, + 0x57,0xc5,0x19,0x67,0x57,0x09,0x1f,0x19,0x63,0x97,0xe9,0x6a,0x86,0x53,0xc7,0xda, + 0x1b,0x9d,0x5b,0x17,0x8f,0x3f,0x51,0xab,0xd1,0xf8,0xac,0xd5,0x5a,0x43,0xc1,0x74, + 0x7d,0x98,0x2f,0xae,0x8f,0x71,0xf6,0x73,0x09,0xdd,0x80,0xe5,0x86,0x05,0x1d,0x44, + 0xb6,0x20,0xb2,0xf2,0x29,0x2f,0xaf,0x4a,0xa1,0x39,0x2b,0x3f,0xf0,0x9e,0x55,0x12, + 0x32,0x71,0x5b,0x8f,0x20,0xa4,0x16,0x13,0xd8,0x75,0x0d,0x84,0x46,0x21,0x54,0x59, + 0xed,0x8c,0x23,0x01,0x40,0x9d,0xcf,0x38,0x20,0xdf,0x82,0x8d,0x1c,0x56,0xee,0x73, + 0xda,0x1f,0xda,0x1d,0x8e,0x04,0x3d,0xea,0xd6,0x37,0x7a,0x70,0x11,0xeb,0xd3,0x4a, + 0x25,0x87,0xb4,0x32,0x52,0x8f,0x12,0xef,0xab,0xa3,0xbc,0x28,0x04,0xe8,0x61,0x2c, + 0x07,0x0e,0x72,0x18,0xa9,0x4a,0xb3,0x18,0x04,0x47,0x0c,0x45,0x1a,0x8e,0x49,0x32, + 0x2b,0xb2,0xb4,0x46,0xdf,0x87,0x1b,0x6e,0xdc,0x13,0x68,0x94,0x9e,0xb8,0x2f,0xb7, + 0xea,0x13,0xbe,0x31,0x8f,0xb8,0xf0,0xd9,0xf9,0xd4,0xc4,0xac,0x78,0xa2,0xf8,0xa5, + 0x5f,0x16,0x80,0xa6,0x97,0xc1,0x75,0x3b,0xf5,0xf5,0x20,0xfa,0xc4,0x17,0x4a,0x79, + 0x69,0x0e,0xab,0x83,0x68,0xd0,0xd6,0x44,0x22,0x5d,0xad,0xa8,0xe3,0xbd,0x8d,0x7f, + 0x57,0x45,0x4b,0x8b,0x03,0x70,0x1e,0x98,0x6e,0xfa,0x57,0xf6,0x26,0xde,0xc3,0x8d, + 0x0d,0x16,0xe5,0x1d,0xa5,0x96,0x81,0x67,0xf5,0x0f,0xa2,0xe1,0x81,0x85,0x37,0x70, + 0xa3,0x88,0x85,0x4d,0x1c,0x6b,0xfb,0xa6,0x03,0x28,0x41,0xda,0x95,0xf1,0xc6,0x35, + 0x65,0xf5,0x3d,0x4f,0x99,0x1d,0xf8,0x56,0x07,0xd1,0xa4,0x88,0x8c,0x4c,0xb1,0xa9, + 0x54,0x89,0x46,0x8b,0x10,0x3b,0x0c,0x74,0x92,0xb8,0xd8,0xd1,0x5d,0xfb,0x66,0x5b, + 0x5f,0x2a,0xef,0xf4,0xed,0x2d,0x5e,0x3f,0xb6,0x80,0x49,0x40,0xc4,0xc4,0x23,0x1a, + 0xad,0x56,0x04,0x93,0x07,0x7f,0x64,0x0a,0xf4,0x26,0xb0,0x6e,0x08,0xfb,0x80,0x40, + 0xd7,0xb0,0x6e,0xa0,0x2d,0xd0,0x30,0xae,0x63,0x27,0xd6,0xf3,0x12,0x35,0x17,0x36, + 0x8f,0xbf,0x7e,0xe5,0xbf,0xfe,0x4d,0x04,0x4b,0xa3,0x00,0x13,0xe4,0x17,0x78,0xcb, + 0xc8,0xa9,0xb7,0x28,0x61,0x5f,0xa4,0xeb,0x9c,0x5e,0x40,0xee,0x1d,0x05,0xf2,0x81, + 0x5d,0x8c,0xc7,0x42,0xbf,0x33,0x3e,0xc3,0x04,0xff,0x07,0xe4,0x7b,0x2e,0x91,0xe8, + 0xeb,0xfd,0xad,0x8c,0x66,0x98,0xf7,0x8a,0x43,0xa9,0x12,0xe9,0xfd,0xf1,0x5e,0x2f, + 0xea,0xbd,0x5e,0x84,0xbd,0xfe,0x8f,0xd7,0x9f,0x3e,0xbc,0xfd,0xf0,0x8f,0x81,0x00, + 0xd4,0x44,0x1d,0x69,0x42,0xe6,0x60,0xc8,0x54,0x9e,0x51,0x8b,0x1a,0x7a,0xb5,0x30, + 0xbd,0x5a,0x33,0x4b,0x20,0xaa,0x03,0x7e,0x9c,0x0e,0x2e,0xe5,0x19,0x61,0x54,0x19, + 0x50,0x31,0xa5,0x31,0x74,0x14,0xcb,0x21,0x73,0x6f,0x0f,0xfb,0xd8,0xa8,0xba,0xcf, + 0x48,0x36,0x73,0x78,0x94,0x8f,0xbe,0xe3,0xbc,0xfe,0x8e,0xf3,0x0d,0xef,0x68,0xdc, + 0xcb,0x6b,0x4e,0xb8,0x3c,0x61,0x03,0xe6,0x40,0x6b,0x36,0x10,0xd6,0x35,0x77,0x1f, + 0xd6,0x0f,0xb8,0x50,0xb6,0xf8,0x3e,0x7c,0xe6,0x2e,0xb2,0xf3,0x65,0x99,0x29,0x70, + 0x12,0x8c,0x29,0xc4,0x37,0x55,0x7d,0x5c,0xc5,0xb1,0xeb,0x0e,0x1e,0xf4,0x4d,0x03, + 0x38,0xb7,0xe8,0x22,0xa7,0x55,0x51,0x3e,0xf1,0x8e,0xc8,0xe2,0xbf,0x26,0xbe,0xeb, + 0x0e,0xbc,0x98,0x6d,0x2c,0xab,0xb1,0x4e,0xe3,0xe1,0xc5,0xcc,0x2f,0x7c,0x31,0x43, + 0x48,0xf8,0x59,0x23,0x19,0x33,0x84,0x6b,0x13,0xc9,0xb2,0x40,0x35,0x5f,0xd1,0x6a, + 0x31,0xab,0x61,0xc3,0x8d,0x8a,0xb3,0x6c,0x82,0xa1,0xc0,0xdb,0xf8,0x63,0x71,0x31, + 0xd3,0x57,0x0c,0x76,0xf9,0x4c,0x94,0xdb,0x7e,0x1a,0x32,0xf9,0x3c,0x3a,0xb8,0xc9, + 0x89,0xe5,0xd0,0xb9,0x0a,0x55,0x8f,0x9b,0x78,0x85,0x4f,0x0c,0x6c,0x59,0x5b,0x3c, + 0xe5,0xba,0x2d,0x55,0xbd,0x0f,0x2c,0x28,0x60,0xfc,0x66,0x85,0xd5,0xd2,0xa5,0x45, + 0xf8,0xf5,0x49,0x9d,0xdd,0x50,0x2a,0x60,0xb5,0x5c,0x1a,0x6a,0x3a,0xf0,0x42,0x66, + 0x3a,0x0a,0x05,0x53,0x1a,0x98,0x2f,0x1b,0x27,0x06,0xb9,0x58,0x78,0xa5,0x8c,0x72, + 0x8c,0x52,0x1b,0xc5,0x63,0x6d,0xe8,0x7c,0x4c,0x84,0x1c,0x15,0x2a,0x8b,0x01,0xdc, + 0x10,0x80,0x1c,0xdd,0x68,0x93,0x29,0xd5,0xba,0x71,0x19,0x8d,0x50,0x3c,0x7c,0xca, + 0x26,0x2c,0xac,0x0c,0x2a,0x1e,0x51,0x70,0x43,0x1e,0x61,0x38,0x34,0xb1,0xc3,0x68, + 0xe9,0x8d,0x5c,0x41,0xff,0x4a,0xf6,0x36,0x17,0x07,0xd9,0x29,0x7b,0xc9,0xde,0xc1, + 0xe9,0x7e,0xed,0x7a,0x4a,0xb4,0x0a,0x9e,0xa5,0x6f,0x79,0xf7,0xb8,0x2a,0x3e,0x01, + 0x49,0xf6,0xb4,0x61,0x46,0x28,0x0b,0xe5,0x43,0x16,0xd1,0xa0,0x8c,0xf4,0x54,0xa0, + 0x4e,0xb9,0xe9,0xe9,0xe5,0x54,0x24,0xe7,0x4a,0x71,0xe5,0x07,0xf5,0x41,0x44,0xb2, + 0x9d,0xfd,0x5e,0x46,0x2c,0xfb,0xaa,0x5e,0xc1,0x17,0x63,0x4d,0x1e,0x36,0x58,0x72, + 0x45,0x0e,0xa4,0x80,0xd8,0x39,0x0d,0x43,0xc5,0xbb,0x70,0x4a,0x47,0xc8,0x7a,0x12, + 0xfb,0xa2,0xb5,0x61,0xd0,0xf4,0x91,0x2f,0xf5,0x62,0x51,0x98,0xe4,0xda,0xf0,0xfd, + 0x40,0xa3,0x45,0xeb,0x4d,0xac,0xa9,0x78,0xec,0x88,0x18,0xd4,0xa7,0xcb,0x02,0x70, + 0xea,0xa3,0x2e,0x3f,0x22,0x42,0x52,0x7b,0x84,0x21,0xc3,0x45,0x90,0xaa,0x39,0x58, + 0x24,0x78,0x9f,0x8d,0xf3,0x51,0x3b,0x22,0xb1,0x8b,0xfd,0x40,0x06,0xe7,0x12,0x25, + 0x5c,0x1e,0x66,0x65,0xfc,0x55,0x96,0x35,0x76,0x55,0x73,0x37,0xb9,0xcf,0x8a,0x91, + 0xe6,0x6c,0xc0,0x24,0x08,0xed,0x97,0x7c,0x9c,0x4e,0xaf,0x3e,0x65,0x5f,0xde,0x8e, + 0x2d,0x11,0x60,0xd3,0xa5,0x34,0xd4,0x3e,0xf8,0x6c,0x6b,0xff,0x20,0x5a,0xe8,0xfe, + 0xea,0xed,0xd4,0x76,0x98,0x6c,0x3f,0xd9,0x5e,0x3e,0x26,0x1c,0xd5,0x16,0x25,0x2b, + 0x6e,0x6f,0xc0,0xff,0x73,0x8d,0x03,0xfc,0xd7,0x84,0x12,0x87,0xb5,0x43,0xbb,0xa1, + 0xed,0xb2,0x26,0xbd,0x44,0x3a,0x96,0x68,0x78,0x95,0x26,0xb0,0xb7,0x2d,0x1f,0xed, + 0x2d,0xb5,0x68,0x6f,0x2b,0x33,0x08,0x6c,0x46,0x43,0x64,0x8c,0x2b,0x72,0xb4,0xcf, + 0x5b,0x31,0x99,0x5a,0x6e,0x21,0xce,0x4b,0xef,0x3b,0xd1,0xc1,0x14,0x08,0xca,0xca, + 0x4d,0x8b,0xf7,0xbe,0x35,0x79,0xbb,0x1c,0x95,0xa2,0x73,0x29,0xca,0xd9,0x04,0x48, + 0xb4,0x63,0x9e,0xb5,0x4d,0x04,0x62,0x53,0x33,0xdf,0x3f,0x7f,0x8e,0x0b,0x1e,0x7a, + 0xd3,0x67,0x69,0xca,0x7f,0xd7,0xda,0x7d,0x8d,0xfa,0xe0,0x55,0x6e,0xf6,0xbd,0x85, + 0x01,0x35,0x33,0xb1,0xbd,0x2d,0xc8,0x9f,0x2d,0x36,0xc5,0x04,0x2c,0xde,0xe6,0x06, + 0x7b,0xf7,0xf7,0xfe,0xf7,0xfe,0xcb,0x7a,0x7b,0x76,0x0c,0x19,0xa6,0x4e,0x01,0x51, + 0x4f,0x1d,0xd8,0xa9,0x5f,0xf9,0xd7,0x4c,0xd5,0xba,0x09,0xb8,0x6d,0x6a,0x5a,0x5e, + 0x78,0xab,0x54,0x27,0x68,0x4b,0x67,0xc8,0x3b,0x6d,0x00,0x2f,0x6a,0x26,0x6e,0x0d, + 0x19,0xaf,0x66,0xed,0xea,0x08,0x6b,0xe3,0x03,0x43,0x63,0x6b,0x57,0xbf,0xb5,0x97, + 0x00,0x86,0x8e,0x79,0x0f,0x6a,0xbc,0x4c,0xf2,0xf1,0x24,0x2b,0x83,0x98,0x1d,0x54, + 0x6a,0x47,0x5c,0xe6,0x0e,0x64,0x27,0x45,0x1d,0x9a,0x1c,0x1a,0x9f,0x5f,0x3f,0xbd, + 0xfd,0x71,0x36,0x9d,0xd3,0xb9,0xc4,0xf1,0x97,0xbf,0x70,0x10,0xf3,0xe7,0xa8,0x91, + 0xb2,0x70,0xc5,0xab,0x4a,0x34,0xf4,0x83,0xdd,0x5e,0xaf,0xf7,0x10,0x6f,0x6d,0x88, + 0xf0,0xc1,0xb3,0xc4,0xb8,0x85,0x68,0x3d,0x12,0x98,0xc7,0xc7,0x16,0xca,0x3b,0xda, + 0x72,0xd0,0x4f,0x9d,0x5d,0xc1,0xa3,0x45,0x0c,0x2d,0xcc,0x9a,0xe1,0x25,0xc2,0x38, + 0x25,0xb0,0x17,0x55,0x64,0xd9,0xcc,0x08,0xe0,0xdc,0x52,0x6d,0xd5,0x68,0xfb,0xa9, + 0x69,0x5f,0x7a,0xc5,0x03,0xb1,0xb7,0x1b,0x5c,0x34,0x84,0xd7,0x05,0x5f,0x37,0x96, + 0x30,0x02,0x4a,0x60,0x4a,0xed,0xaf,0xa5,0x70,0xb7,0x29,0xff,0x58,0x40,0xa9,0xc2, + 0x96,0x99,0xf9,0xb5,0x42,0x11,0xeb,0x49,0xee,0x3a,0x8c,0xf9,0x5c,0x83,0xb7,0xad, + 0x0b,0x70,0xb7,0x2c,0xc0,0x85,0xe6,0xaf,0xac,0xff,0x44,0x0f,0x3b,0xb9,0x46,0x9a, + 0x11,0xe9,0xf9,0x2a,0x6d,0xdf,0x76,0x67,0x57,0xcf,0x38,0x2c,0x42,0x7c,0x80,0xcf, + 0x83,0x67,0xb8,0x7f,0xfd,0x96,0x5e,0xa1,0x06,0x8d,0xeb,0x95,0xe3,0xef,0x69,0xf0, + 0xc0,0x53,0x39,0xee,0x1f,0x97,0x07,0xce,0x0e,0x4f,0x60,0x75,0x4d,0x77,0x66,0x57, + 0x07,0x6c,0x79,0x3b,0xe0,0xc5,0x9e,0xc8,0x43,0x55,0xb3,0xa2,0x7b,0x6b,0xe8,0xbd, + 0x1e,0xda,0xba,0xb7,0x52,0xc6,0x0c,0x28,0xbf,0xaa,0xa9,0x7d,0xf7,0xfb,0x71,0xc3, + 0xee,0xb1,0x84,0x5c,0x96,0x25,0xf0,0x20,0xd7,0xe9,0x39,0xc2,0xdc,0xfd,0x89,0x89, + 0xc6,0xe6,0x7f,0x48,0x5e,0xec,0xf6,0x82,0x6b,0x93,0x3a,0xed,0x5d,0xdb,0xfa,0xb8, + 0x14,0x81,0x4a,0x8d,0x3b,0x9f,0x2c,0xfe,0x9f,0x48,0x7d,0x8d,0x24,0x36,0x92,0x7e, + 0xb3,0x18,0x67,0x0c,0xb1,0x01,0xe7,0xbb,0x51,0xc9,0x91,0x19,0x31,0x25,0x6c,0xa6, + 0x1d,0xec,0xb7,0x3a,0x05,0xa6,0x75,0xbf,0xf7,0xa2,0xf7,0x3f,0xd8,0x35,0x9d,0xbe, + 0xd2,0xa0,0x87,0xe4,0xaf,0x8f,0xec,0x1a,0x21,0x01,0x82,0x7a,0x64,0xdc,0xdc,0x05, + 0xda,0x38,0xe0,0x1c,0x71,0x32,0x05,0x87,0xc7,0xd3,0x94,0xa1,0x81,0x92,0x07,0x53, + 0xa5,0xba,0x81,0xd9,0x12,0xb8,0x6a,0x26,0x8a,0xd5,0x66,0xed,0x1c,0x9b,0x6f,0x79, + 0xba,0x44,0x23,0xcb,0xc6,0x2a,0x10,0x2b,0xa2,0x3a,0x67,0x6b,0xd3,0xa8,0xd9,0x00, + 0x06,0xb1,0x9f,0xd9,0x34,0xa7,0x46,0xb1,0x6a,0x37,0x2a,0x89,0xb1,0x8b,0x30,0x78, + 0x38,0x3b,0x37,0x17,0x72,0x3e,0x5a,0x2e,0x0c,0xfa,0x71,0x77,0xe2,0x53,0x05,0xde, + 0x7d,0xb8,0x6e,0xf1,0xc0,0x99,0x59,0x4b,0x6a,0x70,0xcb,0x79,0xe8,0xf4,0x58,0xec, + 0xb6,0x7e,0x02,0x70,0x9a,0x22,0xfa,0xb1,0x54,0x6c,0x5c,0x00,0x24,0x2e,0x52,0x77, + 0x1d,0xcb,0xda,0xb5,0xff,0x7f,0x0b,0x88,0xeb,0x5a,0x7d,0x62,0x12,0x9a,0x94,0xfc, + 0x76,0x80,0x37,0x75,0x90,0xcb,0x28,0x28,0x9a,0x0f,0xac,0x2c,0xf8,0x37,0xd4,0xbf, + 0x53,0x7e,0x4a,0x43,0x73,0x4a,0xc7,0x11,0xf5,0x4a,0xb1,0x91,0x3f,0xfa,0xe5,0x84, + 0x51,0x34,0x76,0xbc,0xfe,0x45,0xc6,0x93,0xed,0xff,0xaf,0x20,0x06,0xd7,0xd7,0xf3, + 0x4f,0x22,0x1b,0xb1,0x9d,0xed,0x75,0xaa,0x8c,0xf9,0x75,0x5e,0x2e,0x47,0x13,0xd8, + 0x63,0xe1,0xf2,0x21,0x71,0x5a,0x55,0x63,0x13,0x51,0xdd,0xdf,0x73,0xd2,0x36,0xd8, + 0xdc,0xc7,0xec,0xd6,0x25,0xdf,0xf5,0x36,0xc9,0x83,0x8f,0xe6,0xb3,0x42,0x54,0xa5, + 0xea,0xca,0x4b,0xe6,0x59,0x20,0x3b,0xb5,0x9a,0x7f,0x70,0xe1,0x85,0x53,0x5f,0x1d, + 0x4c,0xb8,0x54,0x79,0x99,0x65,0x15,0xb0,0x51,0xb8,0xb0,0x18,0x09,0x5f,0x07,0xb2, + 0x1e,0xb0,0x79,0xd2,0x4a,0x1d,0xf7,0x0d,0x5f,0xe4,0xa2,0x8e,0x50,0x67,0xa7,0x1c, + 0xda,0x0b,0x17,0xab,0x3f,0xcc,0x96,0xc5,0x98,0x46,0xfb,0x47,0x76,0xcc,0xa2,0xf9, + 0xa6,0x91,0xea,0x9e,0xce,0x2a,0x1a,0xd9,0xed,0xea,0x89,0x0c,0x9d,0x57,0x2a,0x5b, + 0x48,0x50,0x05,0x40,0x8c,0x9c,0x92,0xd4,0xc7,0x56,0x33,0xe5,0x69,0xe3,0x40,0x08, + 0xd0,0x6f,0x2c,0xc1,0x42,0x52,0xca,0xb4,0xde,0xc9,0x8a,0x38,0xbc,0xcd,0x2d,0xd3, + 0xd3,0xed,0xeb,0x6b,0x2d,0x46,0xcc,0xa0,0xba,0x9b,0x01,0xa8,0x23,0x65,0x4c,0xec, + 0x05,0x4a,0xb5,0x29,0x8b,0x8c,0xcf,0x36,0x0a,0x48,0xd4,0x12,0x71,0xde,0x42,0xce, + 0x3d,0x8c,0x50,0x5c,0x9b,0x05,0x07,0xae,0xfd,0xb7,0x5e,0xc2,0xd9,0x88,0xbd,0x9b, + 0xdf,0x46,0x6e,0xba,0x6a,0xda,0xe5,0x72,0x79,0xc1,0x50,0x3b,0x5e,0xb3,0xe1,0xa0, + 0x7f,0xdb,0xeb,0xbe,0x7a,0x21,0x95,0xc4,0x9b,0x94,0xf7,0x4f,0xea,0x0c,0x98,0xb8, + 0x34,0x2e,0x59,0x5a,0xd1,0x8d,0xe9,0x0d,0x17,0xf4,0xb4,0xab,0xf2,0x7f,0x65,0x51, + 0x22,0x7b,0xc1,0x45,0xb7,0x7c,0xb2,0xa0,0xf4,0xc5,0x2b,0xe8,0x87,0x82,0x83,0x28, + 0x4b,0x93,0xd3,0x56,0x74,0x6c,0x31,0xbe,0x12,0xb7,0xac,0x8d,0x61,0x46,0x55,0x55, + 0xfa,0xcc,0x79,0x70,0x39,0x03,0x24,0x76,0x69,0x16,0x8b,0x19,0xfe,0x28,0xd4,0xdf, + 0x73,0x56,0x7b,0x68,0x8e,0xca,0xe9,0x34,0x28,0xe8,0x42,0x8e,0x78,0xca,0xb9,0x5c, + 0x5d,0xdd,0x5c,0x42,0x84,0xab,0x46,0xa7,0x43,0xc6,0xfa,0x86,0x8f,0x38,0x38,0xe8, + 0xbc,0xda,0x32,0x54,0x61,0xe8,0x0d,0xef,0x9f,0x16,0xd5,0x57,0xaa,0xdb,0x3a,0xe4, + 0x6e,0x69,0x74,0x51,0x8c,0x95,0x80,0xae,0x0f,0xb7,0xf6,0x76,0xe4,0x66,0x79,0x9f, + 0x3e,0x9d,0xce,0xc6,0x77,0xf8,0x8b,0x90,0xd7,0xfb,0x5b,0xff,0x0d,0x53,0x17,0xda, + 0x5a,0x8f,0x97,0x01,0x00, }; diff --git a/src/helpers/esp32/WebConfigServer.cpp b/src/helpers/esp32/WebConfigServer.cpp index b9df538b..c402b025 100644 --- a/src/helpers/esp32/WebConfigServer.cpp +++ b/src/helpers/esp32/WebConfigServer.cpp @@ -1797,6 +1797,7 @@ void WebConfigServer::handleConfigGet(AsyncWebServerRequest* req) { radio["name"] = (const char*)node.name; radio["bluetooth_name"] = (const char*)node.bluetooth_name; radio["bluetooth_mac"] = (const char*)node.bluetooth_mac; + radio["bluetooth_stealth"] = node.bluetooth_stealth; radio["lat"] = node.lat; radio["lon"] = node.lon; radio["advert_interval"] = node.advert_interval; diff --git a/src/helpers/esp32/WebConfigServer.h b/src/helpers/esp32/WebConfigServer.h index 3986b4bd..40ed92b0 100644 --- a/src/helpers/esp32/WebConfigServer.h +++ b/src/helpers/esp32/WebConfigServer.h @@ -85,6 +85,7 @@ public: CAP_BLUETOOTH_NAME = 1UL << 14, CAP_ESPNOW_CHANNEL = 1UL << 15, CAP_BLUETOOTH_MAC = 1UL << 16, + CAP_BLUETOOTH_STEALTH = 1UL << 17, CAP_DELAYS = CAP_RX_DELAY | CAP_TX_DELAY, }; @@ -95,6 +96,7 @@ public: char name[32]; char bluetooth_name[32]; // empty = transport's default device name char bluetooth_mac[24]; // empty = chipset factory address + bool bluetooth_stealth; // independent of the address policy char admin_password[32]; // empty = trusted LAN/no login prompt double lat; double lon; diff --git a/src/helpers/nrf52/SerialBLEInterface.cpp b/src/helpers/nrf52/SerialBLEInterface.cpp index e02cc401..3bd7ffeb 100644 --- a/src/helpers/nrf52/SerialBLEInterface.cpp +++ b/src/helpers/nrf52/SerialBLEInterface.cpp @@ -10,6 +10,7 @@ // Magic numbers came from actual testing #define BLE_HEALTH_CHECK_INTERVAL 10000 // Advertising watchdog check every 10 seconds #define BLE_RETRY_THROTTLE_MS 250 // Throttle retries to 250ms when queue buildup detected +#define BLE_BOND_PERSIST_TIMEOUT_MS 15000 // Bound first-pair transition recovery // Connection parameters (units: interval=1.25ms, timeout=10ms) #define BLE_MIN_CONN_INTERVAL 12 // 15ms @@ -108,11 +109,20 @@ void SerialBLEInterface::onSecured(uint16_t connection_handle) { if (conn != nullptr && conn->bonded()) { instance->removeStoredBondForPeer("unsecured link"); } + if (instance->_bonded_only) { + instance->requestBondedOnlyRecovery("unsecured bonded-only link"); + } instance->disconnect(); return; } instance->_isDeviceConnected = true; + if (conn->bonded()) { + instance->noteSuccessfulConnection(conn->getPeerAddr()); + } else { + BLE_DEBUG_PRINTLN( + "SerialBLEInterface: secured connection was not bonded"); + } instance->_security_timer.cancel(); // Connection interval units: 1.25ms, supervision timeout units: 10ms @@ -155,8 +165,19 @@ void SerialBLEInterface::onPairingComplete(uint16_t connection_handle, uint8_t a if (instance->isValidConnection(connection_handle)) { if (auth_status == BLE_GAP_SEC_STATUS_SUCCESS) { BLE_DEBUG_PRINTLN("SerialBLEInterface: pairing successful"); + BLEConnection* conn = Bluefruit.Connection(connection_handle); + if (conn != nullptr && conn->secured()) { + // Bluefruit may invoke onSecured before it marks a newly paired + // connection as bonded. Record the completed pairing here as well; + // resolveSuccessfulPeer() will keep the event pending until the + // deferred bond write can be loaded. + instance->noteSuccessfulConnection(conn->getPeerAddr()); + } } else { BLE_DEBUG_PRINTLN("SerialBLEInterface: pairing failed, clearing stale bond and disconnecting"); + if (instance->_bonded_only) { + instance->requestBondedOnlyRecovery("pairing failure"); + } BLEConnection* conn = Bluefruit.Connection(connection_handle); if (conn != nullptr && conn->bonded()) { instance->removeStoredBondForPeer("pairing failure"); @@ -189,6 +210,9 @@ void SerialBLEInterface::onBLEEvent(ble_evt_t* evt) { if (conn->bonded()) { instance->removeStoredBondForPeer("failed bond encryption"); } + if (instance->_bonded_only) { + instance->requestBondedOnlyRecovery("failed bond encryption"); + } instance->_isDeviceConnected = false; instance->_security_timer.cancel(); sd_ble_gap_disconnect(conn_handle, BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION); @@ -197,6 +221,10 @@ void SerialBLEInterface::onBLEEvent(ble_evt_t* evt) { ble_gap_evt_disconnected_t const* disconnected = &evt->evt.gap_evt.params.disconnected; if (isBondAuthenticationFailure(disconnected->reason)) { instance->removeStoredBondForPeer("authentication disconnect"); + if (instance->_bonded_only) { + instance->requestBondedOnlyRecovery( + "bond authentication disconnect"); + } } instance->_peer_address_valid = false; } else if (evt->header.evt_id == BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST) { @@ -239,11 +267,149 @@ bool SerialBLEInterface::removeStoredBondForPeer(const char* cause) { return true; } +void SerialBLEInterface::noteSuccessfulConnection( + const ble_gap_addr_t& peer_address) { + if (_stealth_pair_once) { + _advertisingSuppressed.store(true, std::memory_order_release); + Bluefruit.Advertising.restartOnDisconnect(false); + } + + if (!_successfulConnectionPending.load(std::memory_order_acquire)) { + _successful_peer_address = peer_address; + _successfulConnectionStarted.store( + (uint32_t)millis(), std::memory_order_relaxed); + _successfulConnectionPending.store(true, std::memory_order_release); + } +} + +bool SerialBLEInterface::resolveSuccessfulPeer( + mesh::companion::BluetoothPeerIdentity& peer) const { + ble_gap_addr_t lookup = _successful_peer_address; + bond_keys_t keys; + if (!bond_load_keys(BLE_GAP_ROLE_PERIPH, &lookup, &keys)) { + return false; + } + + const ble_gap_addr_t& identity = keys.peer_id.id_addr_info; + if (identity.addr_type == BLE_GAP_ADDR_TYPE_PUBLIC) { + peer.type = mesh::companion::BLUETOOTH_PEER_ADDRESS_PUBLIC; + } else if (identity.addr_type == BLE_GAP_ADDR_TYPE_RANDOM_STATIC) { + peer.type = mesh::companion::BLUETOOTH_PEER_ADDRESS_RANDOM; + } else { + return false; + } + for (size_t i = 0; i < mesh::companion::BLUETOOTH_MAC_BYTES; i++) { + peer.address[i] = identity.addr[ + mesh::companion::BLUETOOTH_MAC_BYTES - 1 - i]; + } + return mesh::companion::isValidBluetoothPeerIdentity(peer); +} + +bool SerialBLEInterface::configureBondedOnlyAdvertising( + const mesh::companion::BluetoothPeerIdentity& peer, + bool require_stored_bond) { + if (!mesh::companion::isValidBluetoothPeerIdentity(peer)) return false; + + ble_gap_addr_t native_peer = {}; + native_peer.addr_type = + peer.type == mesh::companion::BLUETOOTH_PEER_ADDRESS_PUBLIC + ? BLE_GAP_ADDR_TYPE_PUBLIC + : BLE_GAP_ADDR_TYPE_RANDOM_STATIC; + for (size_t i = 0; i < mesh::companion::BLUETOOTH_MAC_BYTES; i++) { + native_peer.addr[i] = peer.address[ + mesh::companion::BLUETOOTH_MAC_BYTES - 1 - i]; + } + + ble_gap_addr_t lookup = native_peer; + bond_keys_t keys; + if (!bond_load_keys(BLE_GAP_ROLE_PERIPH, &lookup, &keys) + || keys.peer_id.id_addr_info.addr_type != native_peer.addr_type + || memcmp(keys.peer_id.id_addr_info.addr, native_peer.addr, + sizeof(native_peer.addr)) != 0) { + if (require_stored_bond) { + requestBondedOnlyRecovery("saved peer bond is unavailable"); + } + return false; + } + + if (isAdvertising() && !Bluefruit.Advertising.stop()) { + requestBondedOnlyRecovery("general advertising could not stop"); + return false; + } + + // A bonded phone may reconnect from a resolvable private address. Loading + // its identity key lets the SoftDevice put a current RPA in TargetA instead + // of directing advertisements only to the phone's static identity address. + const ble_gap_id_key_t* peer_identities[] = {&keys.peer_id}; + const uint32_t identity_error = sd_ble_gap_device_identities_set( + peer_identities, nullptr, 1); + if (identity_error != NRF_SUCCESS) { + BLE_DEBUG_PRINTLN( + "SerialBLEInterface: peer identity-list setup failed: %lu", + (unsigned long)identity_error); + requestBondedOnlyRecovery("peer identity-list setup failed"); + return false; + } + + // Legacy directed advertisements do not carry an advertising or scan + // response payload. Leaving the normal name/service payload configured can + // make the SoftDevice reject the directed advertising parameters. + Bluefruit.Advertising.clearData(); + Bluefruit.ScanResponse.clearData(); + Bluefruit.Advertising.setType( + BLE_GAP_ADV_TYPE_CONNECTABLE_NONSCANNABLE_DIRECTED); + Bluefruit.Advertising.setPeerAddress(native_peer); + Bluefruit.Advertising.restartOnDisconnect(true); + _bonded_only = true; + _stealth_pair_once = false; + _advertisingSuppressed.store(false, std::memory_order_release); + + if (_isEnabled && _conn_handle == BLE_CONN_HANDLE_INVALID + && !startAdvertising("directed advertising failed to start")) { + return false; + } + return true; +} + +void SerialBLEInterface::requestBondedOnlyRecovery(const char* cause) { + BLE_DEBUG_PRINTLN("SerialBLEInterface: stealth recovery required (%s)", + cause); + _bonded_only = true; + _stealth_pair_once = false; + _advertisingSuppressed.store(true, std::memory_order_release); + _bondedOnlyRecoveryPending.store(true, std::memory_order_release); + Bluefruit.Advertising.restartOnDisconnect(false); + if (isAdvertising()) Bluefruit.Advertising.stop(); +} + +bool SerialBLEInterface::advertisingAllowed() const { + return _isEnabled + && !_advertisingSuppressed.load(std::memory_order_acquire) + && !_bondedOnlyRecoveryPending.load(std::memory_order_acquire); +} + +bool SerialBLEInterface::startAdvertising(const char* failure_cause) { + if (!advertisingAllowed()) return false; + if (Bluefruit.Advertising.start(0)) return true; + if (_bonded_only) requestBondedOnlyRecovery(failure_cause); + return false; +} + bool SerialBLEInterface::begin(const char* prefix, const char* name, uint32_t pin_code, const uint8_t* custom_address, - bool clear_bonds) { + bool clear_bonds, bool stealth_pair_once, + const mesh::companion::BluetoothPeerIdentity* + bonded_only_peer) { instance = this; + _successfulConnectionPending.store(false, std::memory_order_release); + _successfulConnectionStarted.store(0, std::memory_order_relaxed); + _bondedOnlyRecoveryPending.store(false, std::memory_order_release); + _advertisingSuppressed.store(false, std::memory_order_release); + _stealth_pair_once = stealth_pair_once; + _bonded_only = false; + _bonded_only_configure_pending = false; + _pending_bonded_peer = mesh::companion::BluetoothPeerIdentity(); char charpin[20]; snprintf(charpin, sizeof(charpin), "%lu", (unsigned long)pin_code); @@ -377,6 +543,8 @@ bool SerialBLEInterface::begin(const char* prefix, const char* name, bledfu.setPermission(SECMODE_ENC_WITH_MITM, SECMODE_ENC_WITH_MITM); bledfu.begin(); + Bluefruit.Advertising.setType( + BLE_GAP_ADV_TYPE_CONNECTABLE_SCANNABLE_UNDIRECTED); Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE); Bluefruit.Advertising.addTxPower(); Bluefruit.Advertising.addService(bleuart); @@ -388,9 +556,84 @@ bool SerialBLEInterface::begin(const char* prefix, const char* name, Bluefruit.Advertising.restartOnDisconnect(true); + if (bonded_only_peer != nullptr) { + configureBondedOnlyAdvertising(*bonded_only_peer, true); + } + return true; } +bool SerialBLEInterface::takeSuccessfulConnection( + mesh::companion::BluetoothPeerIdentity* peer) { + if (!_successfulConnectionPending.load(std::memory_order_acquire)) { + return false; + } + if (peer != nullptr && !resolveSuccessfulPeer(*peer)) { + // Bond persistence is deferred by Bluefruit. Leave the event pending and + // let the main loop retry after that callback has written the keys. If the + // deferred write failed, reopen pairing instead of remaining hidden until + // somebody manually power-cycles the node. + const uint32_t started = _successfulConnectionStarted.load( + std::memory_order_relaxed); + if (_stealth_pair_once + && (uint32_t)((uint32_t)millis() - started) + >= BLE_BOND_PERSIST_TIMEOUT_MS) { + _successfulConnectionPending.store(false, std::memory_order_release); + requestBondedOnlyRecovery("new peer bond did not persist"); + } + return false; + } + const bool pending = _successfulConnectionPending.exchange( + false, std::memory_order_acq_rel); + if (pending) { + _successfulConnectionStarted.store(0, std::memory_order_relaxed); + } + return pending; +} + +bool SerialBLEInterface::enableBondedOnlyAdvertising( + const mesh::companion::BluetoothPeerIdentity& peer) { + if (!mesh::companion::isValidBluetoothPeerIdentity(peer)) return false; + + // The SoftDevice may reject identity-list changes while a connection is + // using that list. Preserve the newly paired session and finish switching + // to directed advertising from the main loop after it disconnects. + if (_conn_handle != BLE_CONN_HANDLE_INVALID) { + _pending_bonded_peer = peer; + _bonded_only_configure_pending = true; + _bonded_only = true; + _stealth_pair_once = false; + _advertisingSuppressed.store(true, std::memory_order_release); + Bluefruit.Advertising.restartOnDisconnect(false); + return true; + } + return configureBondedOnlyAdvertising(peer, false); +} + +void SerialBLEInterface::serviceBondedOnlyTransition() { + if (!_bonded_only_configure_pending + || _conn_handle != BLE_CONN_HANDLE_INVALID) { + return; + } + + const mesh::companion::BluetoothPeerIdentity peer = _pending_bonded_peer; + _bonded_only_configure_pending = false; + configureBondedOnlyAdvertising(peer, true); +} + +void SerialBLEInterface::cancelStealthPairingTransition() { + if (!_stealth_pair_once) return; + _stealth_pair_once = false; + _advertisingSuppressed.store(false, std::memory_order_release); + Bluefruit.Advertising.setType( + BLE_GAP_ADV_TYPE_CONNECTABLE_SCANNABLE_UNDIRECTED); + Bluefruit.Advertising.restartOnDisconnect(true); + if (_isEnabled && _conn_handle == BLE_CONN_HANDLE_INVALID + && !isAdvertising()) { + startAdvertising("advertising failed after stealth cancellation"); + } +} + void SerialBLEInterface::clearBuffers() { send_queue_len = 0; recv_queue_len = 0; @@ -454,8 +697,8 @@ void SerialBLEInterface::serviceTxRecovery(uint32_t now) { _peer_address_valid = false; _security_timer.cancel(); clearBuffers(); - if (_isEnabled && !isAdvertising()) { - Bluefruit.Advertising.start(0); + if (advertisingAllowed() && !isAdvertising()) { + startAdvertising("advertising failed after TX recovery"); } return; } @@ -510,9 +753,7 @@ bool SerialBLEInterface::isValidConnection(uint16_t handle, bool requireWaitingF } bool SerialBLEInterface::isAdvertising() const { - ble_gap_addr_t adv_addr; - uint32_t err_code = sd_ble_gap_adv_addr_get(0, &adv_addr); - return (err_code == NRF_SUCCESS); + return Bluefruit.Advertising.isRunning(); } void SerialBLEInterface::enable() { @@ -523,8 +764,10 @@ void SerialBLEInterface::enable() { clearBuffers(); _last_health_check = millis(); - Bluefruit.Advertising.restartOnDisconnect(true); - Bluefruit.Advertising.start(0); + if (advertisingAllowed()) { + Bluefruit.Advertising.restartOnDisconnect(true); + startAdvertising("advertising failed while enabling Bluetooth"); + } } void SerialBLEInterface::disconnect() { @@ -568,6 +811,7 @@ size_t SerialBLEInterface::writeFrame(const uint8_t src[], size_t len) { size_t SerialBLEInterface::checkRecvFrame(uint8_t dest[]) { const uint32_t check_now = (uint32_t)millis(); + serviceBondedOnlyTransition(); if (_tx_disconnect_recovery.pending()) { serviceTxRecovery(check_now); return 0; @@ -655,13 +899,14 @@ size_t SerialBLEInterface::checkRecvFrame(uint8_t dest[]) { _security_timer.cancel(); disconnect(); } - if (_isEnabled && !isConnected() && _conn_handle == BLE_CONN_HANDLE_INVALID) { + if (advertisingAllowed() && !isConnected() + && _conn_handle == BLE_CONN_HANDLE_INVALID) { if (now - _last_health_check >= BLE_HEALTH_CHECK_INTERVAL) { _last_health_check = now; if (!isAdvertising()) { BLE_DEBUG_PRINTLN("SerialBLEInterface: advertising watchdog - advertising stopped, restarting"); - Bluefruit.Advertising.start(0); + startAdvertising("advertising watchdog restart failed"); } } } diff --git a/src/helpers/nrf52/SerialBLEInterface.h b/src/helpers/nrf52/SerialBLEInterface.h index e2d0a1e2..78d0af4c 100644 --- a/src/helpers/nrf52/SerialBLEInterface.h +++ b/src/helpers/nrf52/SerialBLEInterface.h @@ -1,6 +1,7 @@ #pragma once #include "../BaseSerialInterface.h" +#include "../BluetoothMac.h" #include "../BleTxStallWatchdog.h" #include "../UsbLogging.h" #include "SecuritySessionTimer.h" @@ -34,7 +35,16 @@ class SerialBLEInterface : public BaseSerialInterface { ble_gap_addr_t _peer_address = {}; bool _peer_address_valid; bool _bond_removed_for_connection; + ble_gap_addr_t _successful_peer_address = {}; + bool _stealth_pair_once; + bool _bonded_only; + bool _bonded_only_configure_pending; + mesh::companion::BluetoothPeerIdentity _pending_bonded_peer; + std::atomic _advertisingSuppressed{false}; + std::atomic _bondedOnlyRecoveryPending{false}; std::atomic _pairingRequestPending{false}; + std::atomic _successfulConnectionPending{false}; + std::atomic _successfulConnectionStarted{0}; SecuritySessionTimer _security_timer; mesh::BleTxStallWatchdog _tx_stall_watchdog; mesh::BleDisconnectRecovery _tx_disconnect_recovery; @@ -59,6 +69,16 @@ class SerialBLEInterface : public BaseSerialInterface { void recoverStalledTx(const char* cause); void serviceTxRecovery(uint32_t now); bool removeStoredBondForPeer(const char* cause); + void noteSuccessfulConnection(const ble_gap_addr_t& peer_address); + bool resolveSuccessfulPeer( + mesh::companion::BluetoothPeerIdentity& peer) const; + bool configureBondedOnlyAdvertising( + const mesh::companion::BluetoothPeerIdentity& peer, + bool require_stored_bond); + void serviceBondedOnlyTransition(); + void requestBondedOnlyRecovery(const char* cause); + bool advertisingAllowed() const; + bool startAdvertising(const char* failure_cause); bool isValidConnection(uint16_t handle, bool requireWaitingForSecurity = false) const; bool isAdvertising() const; static void onConnect(uint16_t connection_handle); @@ -85,6 +105,9 @@ public: _last_retry_attempt = 0; _peer_address_valid = false; _bond_removed_for_connection = false; + _stealth_pair_once = false; + _bonded_only = false; + _bonded_only_configure_pending = false; send_queue_len = 0; recv_queue_len = 0; } @@ -96,10 +119,14 @@ public: * @param pin_code the BLE security pin * @param custom_address optional human-order BLE random-static address * @param clear_bonds clear saved peer bonds before accepting connections + * @param stealth_pair_once suppress general advertising after first pairing + * @param bonded_only_peer optional peer allowed to reconnect in stealth mode */ bool begin(const char* prefix, const char* name, uint32_t pin_code, const uint8_t* custom_address = nullptr, - bool clear_bonds = false); + bool clear_bonds = false, bool stealth_pair_once = false, + const mesh::companion::BluetoothPeerIdentity* + bonded_only_peer = nullptr); void disconnect(); void enable() override; @@ -112,6 +139,15 @@ public: bool takePairingRequest() override { return _pairingRequestPending.exchange(false, std::memory_order_acq_rel); } + bool takeSuccessfulConnection( + mesh::companion::BluetoothPeerIdentity* peer = nullptr); + bool enableBondedOnlyAdvertising( + const mesh::companion::BluetoothPeerIdentity& peer); + void cancelStealthPairingTransition(); + bool takeBondedOnlyRecovery() { + return _bondedOnlyRecoveryPending.exchange( + false, std::memory_order_acq_rel); + } size_t writeFrame(const uint8_t src[], size_t len) override; size_t checkRecvFrame(uint8_t dest[]) override; #if COMPANION_FEATURE_BLE_MOTA_SOURCE diff --git a/test/README.md b/test/README.md index d0067108..e9bb3251 100644 --- a/test/README.md +++ b/test/README.md @@ -20,6 +20,10 @@ python3 test/test_companion_transport_selector.py # Indicator transport-selecto python3 test/test_color_theme.py # shared color-display dark-palette contract python3 test/test_indicator_font_recovery.py # Indicator TLS/SD font recovery contract python3 test/test_companion_terminal_profile.py # Companion CLI capability gates +python3 test/test_bluetooth_mac_contract.py # MAC policies, separate stealth flag and BLE backend integration +python3 test/test_companion_settings_persistence_contract.py # Atomic settings and appended Bluetooth fields +python3 test/test_webconfig_ui.py # Web controls, reboot handling and generated-page consistency +python3 test/test_webconfig_ui_runtime.py # Real Chromium, including independent stealth toggle python3 test/test_nrf52_uf2reset_cli.py # all nRF52 text-CLI reset dispatchers python3 test/test_client_login_profile_contract.py # ACL login ordering/role contract python3 test/test_client_acl_spiffs.py # Actual ACL: first login, replay/reboot, failed storage @@ -40,6 +44,11 @@ python3 test/test_temp_radio_reply_delivery_contract.py # TempRadio ACK path/ba python3 test/test_tls_download_clock_gates.py # Fresh-NTP/TLS download integration contract ``` +The WebConfig browser suite skips if no Chromium-family browser is available. +With a sandboxed browser that cannot read `/tmp`, set `TMPDIR` to a writable +directory visible to that browser before running it. The Bluetooth settings +contracts and WebConfig suites also run in the unit-test GitHub workflow. + A green `[PASSED]` per suite means GoogleTest returned 0 (all assertions passed). PlatformIO's "0 test cases" line is just its Unity-style counter and does not reflect the GoogleTest count -- run the built binary directly @@ -96,7 +105,7 @@ does not reflect the GoogleTest count -- run the built binary directly | `test_lazy_persistence` | `src/helpers/LazyPersistence.h` | first-write scheduling without postponement, zero-sentinel rollover preservation, capped exponential save-failure backoff that mutations cannot defeat, and reset only after success | | `test_client_acl_file_transaction` | `src/helpers/ClientACLFileTransaction.h` | verified temp publication, preservation of the prior ACL on verification/rename failure, post-commit cleanup-failure handling, and recovery at every temp/backup/primary boundary | | `test_cad_timing` | `src/helpers/radiolib/CadTiming.h`, `LR2021SideDetectorConfig.h`, `RadioAirtime.h` | Cascade and slow-profile CAD deadlines; invalid airtime handling; bounded LR2021 side-detector parsing and LDRO recomputation | -| `test_companion_node_prefs` | `examples/companion_radio/NodePrefs.h` | independent device power saving, RXPS, Wi-Fi, FEM, Bluetooth name, and Bluetooth address preferences; random-static address validation/generation; one-time migration of the regressed power-saving default | +| `test_companion_node_prefs` | `examples/companion_radio/NodePrefs.h` | independent device power saving, RXPS, Wi-Fi, FEM, Bluetooth name, address policy and stealth flag; random-static address validation/generation; idempotent stealth toggles, pairing reset and armed rotation policy matching; one-time migration of the regressed power-saving default | | `test_config_serializer` | `src/helpers/ConfigSerializer.cpp`, Companion `NodePrefs` | escaped config save/load, whitespace and malformed input, unknown fields, and FEM/ESP-NOW bridge-format preference round trips | | `test_deferred_cli_command` | `src/helpers/DeferredCliCommand.h` | copying authenticated command context, single-pending-command enforcement, clearing, and length rejection | | `test_host_cli_bridge` | `src/helpers/HostCliBridge.h` | bounded request/reply parsing, Base64URL serial framing, correlation preservation, one-time service-claim proofs, request-token fields, line safety, and UTF-8-safe truncation | diff --git a/test/test_bluetooth_mac_contract.py b/test/test_bluetooth_mac_contract.py index 408f1556..93891d5e 100644 --- a/test/test_bluetooth_mac_contract.py +++ b/test/test_bluetooth_mac_contract.py @@ -26,9 +26,12 @@ class BluetoothMacContractTests(unittest.TestCase): for header in (self.nrf_header, self.esp_header): self.assertIn("const uint8_t* custom_address = nullptr", header) self.assertIn("bool clear_bonds = false", header) + self.assertIn("bool stealth_pair_once = false", header) + self.assertIn("bonded_only_peer", header) self.assertIn("the_mesh.getBLEPin(), bluetooth_address,", self.main) - self.assertIn("clear_bonds))", self.main) + self.assertIn("clear_bonds, stealth_pair_once,", self.main) + self.assertIn("bonded_only_peer_ptr))", self.main) def test_nrf52_uses_random_static_softdevice_address(self): self.assertIn("BLE_GAP_ADDR_TYPE_RANDOM_STATIC", self.nrf_source) @@ -53,15 +56,143 @@ class BluetoothMacContractTests(unittest.TestCase): ) self.assertIn("clear_bonds = true;", self.main) - def test_cli_exposes_custom_random_every_boot_and_default(self): + def test_cli_exposes_all_address_modes(self): self.assertIn('"get bluetooth.mac"', self.mesh) self.assertIn('"set bluetooth.mac"', self.mesh) self.assertIn('strcmp(value, "random")', self.mesh) self.assertIn('strcmp(value, "random-every-boot")', self.mesh) self.assertIn('strcmp(value, "random everyboot")', self.mesh) + self.assertIn('strcmp(value, "random-after-connect")', self.mesh) + self.assertNotIn('strcmp(value, "stealth")', self.mesh) self.assertIn('strcmp(value, "default")', self.mesh) self.assertIn("parseBluetoothMac(custom_value, address)", self.mesh) + def test_stealth_is_a_separate_idempotent_flag(self): + self.assertIn('"get bluetooth.stealth"', self.mesh) + self.assertIn('"set bluetooth.stealth"', self.mesh) + self.assertIn('"get ble.stealth"', self.mesh) + self.assertIn('"set ble.stealth"', self.mesh) + setter = self.mesh[ + self.mesh.index("bool MyMesh::applyAndSaveBluetoothStealth("): + self.mesh.index("void MyMesh::formatBluetoothStealthStatus(") + ] + self.assertIn('strcmp(value, "on")', setter) + self.assertIn('strcmp(value, "off")', setter) + self.assertIn("setCompanionBluetoothStealth(_prefs,", setter) + self.assertIn("&& !savePrefs()", setter) + self.assertIn("_prefs.bluetooth_stealth_mode = previous_mode", setter) + self.assertNotIn("saveBluetoothMac(", setter) + self.assertNotIn("_prefs.bluetooth_mac_mode =", setter) + self.assertNotIn("getRNG()", setter) + self.assertNotIn("|stealth|", self.mesh) + + def test_rotation_and_stealth_share_the_authenticated_event(self): + self.assertIn("companion_bluetooth_session_stealth_mode", self.main) + self.assertIn("prefs->bluetooth_stealth_mode", self.main) + self.assertIn("bluetoothMacPoliciesMatch(", self.main) + start = self.mesh.index("bool MyMesh::prepareBluetoothMacForBoot(") + end = self.mesh.index("bool MyMesh::armBluetoothMacRotationAfterConnection(") + self.assertIn("BLUETOOTH_MAC_RANDOM_EVERY_BOOT", self.mesh[start:end]) + self.assertIn("resetBluetoothStealthPairing()", self.mesh[start:end]) + start = self.mesh.index("bool MyMesh::saveBluetoothStealthPeer(") + end = self.mesh.index("bool MyMesh::resetBluetoothStealthPairing()") + save_peer = self.mesh[start:end] + self.assertLess(save_peer.index("BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED"), + save_peer.index("if (savePrefs())")) + self.assertIn("_prefs.bluetooth_mac_mode = previous_mode", save_peer) + start = self.mesh.index("bool MyMesh::saveBluetoothMac(") + end = self.mesh.index("bool MyMesh::applyAndSaveBluetoothMac(") + self.assertIn("clearCompanionBluetoothStealthPeer(_prefs)", self.mesh[start:end]) + self.assertIn("_prefs.bluetooth_stealth_mode = previous_stealth_mode", + self.mesh[start:end]) + + def test_web_snapshot_and_dispatch_keep_flag_separate(self): + self.assertIn('strcmp(key, "bluetooth.stealth")', self.mesh) + self.assertIn("s.bluetooth_stealth =", self.mesh) + self.assertNotIn('sizeof(s.bluetooth_mac), "stealth"', self.mesh) + self.assertIn("CAP_BLUETOOTH_STEALTH", self.mesh) + + def test_random_after_connect_arms_after_authentication(self): + self.assertIn("takeSuccessfulConnection(", self.nrf_header) + self.assertIn("takeSuccessfulConnection(", self.esp_header) + self.assertIn( + "_successfulConnectionPending.store(", self.nrf_source + ) + self.assertIn( + "_successfulConnectionPending.store(", self.esp_source + ) + self.assertIn("prepareBluetoothMacForBoot", self.main) + self.assertIn("armBluetoothMacRotationAfterConnection", self.main) + self.assertIn("bluetoothMacModeIsRandomAfterConnect", self.main) + self.assertIn( + "companion_bluetooth_clear_bonds_this_boot", self.main + ) + + def test_stealth_switches_to_bonded_peer_only_advertising(self): + for header in (self.nrf_header, self.esp_header): + self.assertIn("enableBondedOnlyAdvertising", header) + self.assertIn("takeBondedOnlyRecovery", header) + self.assertIn("cancelStealthPairingTransition", header) + + self.assertIn( + "BLE_GAP_ADV_TYPE_CONNECTABLE_NONSCANNABLE_DIRECTED", + self.nrf_source, + ) + self.assertIn("Bluefruit.Advertising.clearData()", self.nrf_source) + self.assertIn("Bluefruit.ScanResponse.clearData()", self.nrf_source) + self.assertIn("setPeerAddress(native_peer)", self.nrf_source) + self.assertIn("sd_ble_gap_device_identities_set(", self.nrf_source) + self.assertIn("serviceBondedOnlyTransition()", self.nrf_source) + self.assertIn("_bonded_only_configure_pending", self.nrf_source) + self.assertIn("ble_gap_wl_set(&native_peer, 1)", self.esp_source) + self.assertIn("esp_ble_gap_clear_whitelist()", self.esp_source) + self.assertIn("esp_ble_gap_update_whitelist", self.esp_source) + self.assertIn("advertising->setScanFilter(true, true)", self.esp_source) + self.assertIn("advertising->setScanResponse(false)", self.esp_source) + self.assertIn("saveBluetoothStealthPeer", self.main) + + def test_stealth_holds_general_advertising_during_transition(self): + for source_text in (self.nrf_source, self.esp_source): + self.assertIn("_advertisingSuppressed.store(", source_text) + self.assertIn("advertisingAllowed()", source_text) + callback_at = source_text.index( + "void SerialBLEInterface::noteSuccessfulConnection" + ) + callback_end = source_text.index("\n}", callback_at) + callback = source_text[callback_at:callback_end] + self.assertLess( + callback.index("_advertisingSuppressed.store("), + callback.index("_successfulConnectionPending.store("), + ) + self.assertIn("restartOnDisconnect(false)", self.nrf_source) + self.assertIn( + "_conn_handle != BLE_CONN_HANDLE_INVALID", + self.nrf_source[ + self.nrf_source.index( + "bool SerialBLEInterface::enableBondedOnlyAdvertising" + ) : self.nrf_source.index( + "void SerialBLEInterface::serviceBondedOnlyTransition" + ) + ], + ) + pairing_callback = self.nrf_source.index( + "void SerialBLEInterface::onPairingComplete" + ) + pairing_success = self.nrf_source.index( + "pairing successful", pairing_callback + ) + next_callback = self.nrf_source.index( + "void SerialBLEInterface::onBLEEvent", pairing_success + ) + self.assertIn( + "noteSuccessfulConnection(conn->getPeerAddr())", + self.nrf_source[pairing_success:next_callback], + ) + self.assertIn("resetBluetoothStealthPairing", self.main) + for source_text in (self.nrf_source, self.esp_source): + self.assertIn("BLE_BOND_PERSIST_TIMEOUT_MS", source_text) + self.assertIn("new peer bond did not persist", source_text) + if __name__ == "__main__": unittest.main() diff --git a/test/test_companion_node_prefs/test_companion_node_prefs.cpp b/test/test_companion_node_prefs/test_companion_node_prefs.cpp index e12b72b1..84d41d75 100644 --- a/test/test_companion_node_prefs/test_companion_node_prefs.cpp +++ b/test/test_companion_node_prefs/test_companion_node_prefs.cpp @@ -165,6 +165,10 @@ TEST(CompanionNodePrefs, BluetoothMacDefaultsToFactoryIdentity) { prefs.bluetooth_mac_mode); EXPECT_FALSE(mesh::companion::hasCustomBluetoothMac( prefs.bluetooth_mac)); + EXPECT_EQ(mesh::companion::BLUETOOTH_PEER_ADDRESS_NONE, + prefs.bluetooth_stealth_peer_type); + EXPECT_EQ(mesh::companion::BLUETOOTH_STEALTH_OFF, + prefs.bluetooth_stealth_mode); } TEST(CompanionNodePrefs, BluetoothMacParsesAndFormatsRandomStaticAddress) { @@ -219,6 +223,27 @@ TEST(CompanionNodePrefs, BluetoothMacRandomBytesAreNormalized) { EXPECT_EQ(0xFE, all_one[5]); } +TEST(CompanionNodePrefs, + BluetoothMacRandomAfterConnectCannotReuseTheOldAddress) { + uint8_t address[mesh::companion::BLUETOOTH_MAC_BYTES] = { + 0xC0, 0x00, 0x00, 0x00, 0x00, 0x01}; + uint8_t previous[mesh::companion::BLUETOOTH_MAC_BYTES]; + memcpy(previous, address, sizeof(previous)); + + mesh::companion::makeRandomStaticBluetoothMacDifferentFrom( + address, previous); + EXPECT_TRUE(mesh::companion::isValidBluetoothMac(address)); + EXPECT_NE(0, memcmp(address, previous, sizeof(address))); + + memset(address, 0xFF, sizeof(address)); + address[5] = 0xFE; + memcpy(previous, address, sizeof(previous)); + mesh::companion::makeRandomStaticBluetoothMacDifferentFrom( + address, previous); + EXPECT_TRUE(mesh::companion::isValidBluetoothMac(address)); + EXPECT_NE(0, memcmp(address, previous, sizeof(address))); +} + TEST(CompanionNodePrefs, BluetoothMacModesDescribeSavedAndPerBootUse) { EXPECT_TRUE(mesh::companion::isValidBluetoothMacMode( mesh::companion::BLUETOOTH_MAC_DEFAULT)); @@ -228,15 +253,131 @@ TEST(CompanionNodePrefs, BluetoothMacModesDescribeSavedAndPerBootUse) { mesh::companion::BLUETOOTH_MAC_RANDOM_SAVED)); EXPECT_TRUE(mesh::companion::isValidBluetoothMacMode( mesh::companion::BLUETOOTH_MAC_RANDOM_EVERY_BOOT)); - EXPECT_FALSE(mesh::companion::isValidBluetoothMacMode(4)); + EXPECT_TRUE(mesh::companion::isValidBluetoothMacMode( + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT)); + EXPECT_TRUE(mesh::companion::isValidBluetoothMacMode( + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED)); + EXPECT_FALSE(mesh::companion::isValidBluetoothMacMode(6)); + EXPECT_FALSE(mesh::companion::isValidBluetoothMacMode(7)); + EXPECT_FALSE(mesh::companion::isValidBluetoothMacMode(8)); EXPECT_TRUE(mesh::companion::bluetoothMacModeUsesSavedAddress( mesh::companion::BLUETOOTH_MAC_CUSTOM)); EXPECT_TRUE(mesh::companion::bluetoothMacModeUsesSavedAddress( mesh::companion::BLUETOOTH_MAC_RANDOM_SAVED)); + EXPECT_TRUE(mesh::companion::bluetoothMacModeUsesSavedAddress( + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT)); EXPECT_FALSE(mesh::companion::bluetoothMacModeUsesSavedAddress( mesh::companion::BLUETOOTH_MAC_RANDOM_EVERY_BOOT)); } +TEST(CompanionNodePrefs, + BluetoothMacRandomAfterConnectRotatesOnlyWhenArmedOrInvalid) { + const uint8_t valid[mesh::companion::BLUETOOTH_MAC_BYTES] = { + 0xC2, 0x11, 0x22, 0x33, 0x44, 0x55}; + const uint8_t invalid[mesh::companion::BLUETOOTH_MAC_BYTES] = {}; + + EXPECT_TRUE(mesh::companion::bluetoothMacModeIsRandomAfterConnect( + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT)); + EXPECT_TRUE(mesh::companion::bluetoothMacModeIsRandomAfterConnect( + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED)); + EXPECT_FALSE(mesh::companion::bluetoothMacModeIsRandomAfterConnect( + mesh::companion::BLUETOOTH_MAC_RANDOM_EVERY_BOOT)); + + EXPECT_FALSE(mesh::companion::bluetoothMacShouldRotateAtBoot( + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT, valid)); + EXPECT_TRUE(mesh::companion::bluetoothMacShouldRotateAtBoot( + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED, valid)); + EXPECT_TRUE(mesh::companion::bluetoothMacShouldRotateAtBoot( + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT, invalid)); + EXPECT_FALSE(mesh::companion::bluetoothMacShouldRotateAtBoot( + mesh::companion::BLUETOOTH_MAC_RANDOM_SAVED, invalid)); +} + +TEST(CompanionNodePrefs, BluetoothStealthTracksPairingIndependently) { + EXPECT_TRUE(mesh::companion::bluetoothStealthEnabled( + mesh::companion::BLUETOOTH_STEALTH_PAIRING)); + EXPECT_TRUE(mesh::companion::bluetoothStealthEnabled( + mesh::companion::BLUETOOTH_STEALTH_PAIRED)); + EXPECT_FALSE(mesh::companion::bluetoothStealthEnabled( + mesh::companion::BLUETOOTH_STEALTH_OFF)); + EXPECT_FALSE(mesh::companion::isValidBluetoothStealthMode(3)); + EXPECT_FALSE(mesh::companion::bluetoothStealthEnabled(255)); + + mesh::companion::BluetoothPeerIdentity peer; + EXPECT_FALSE(mesh::companion::isValidBluetoothPeerIdentity(peer)); + peer.type = mesh::companion::BLUETOOTH_PEER_ADDRESS_RANDOM; + peer.address[0] = 0xC2; + peer.address[5] = 0x55; + EXPECT_TRUE(mesh::companion::isValidBluetoothPeerIdentity(peer)); + peer.type = 3; + EXPECT_FALSE(mesh::companion::isValidBluetoothPeerIdentity(peer)); +} + +TEST(CompanionNodePrefs, StealthFlagPreservesEveryMacPolicyAndAddress) { + const uint8_t address[] = {0xC2, 0x11, 0x22, 0x33, 0x44, 0x55}; + for (uint8_t mode = mesh::companion::BLUETOOTH_MAC_DEFAULT; + mode <= mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED; + mode++) { + CompanionNodePrefs prefs; + prefs.bluetooth_mac_mode = mode; + memcpy(prefs.bluetooth_mac, address, sizeof(address)); + EXPECT_TRUE(setCompanionBluetoothStealth(prefs, true)); + EXPECT_EQ(mesh::companion::BLUETOOTH_STEALTH_PAIRING, + prefs.bluetooth_stealth_mode); + EXPECT_EQ(mode, prefs.bluetooth_mac_mode); + EXPECT_EQ(0, memcmp(address, prefs.bluetooth_mac, sizeof(address))); + + prefs.bluetooth_stealth_mode = mesh::companion::BLUETOOTH_STEALTH_PAIRED; + prefs.bluetooth_stealth_peer_type = mesh::companion::BLUETOOTH_PEER_ADDRESS_PUBLIC; + memcpy(prefs.bluetooth_stealth_peer, address, sizeof(address)); + EXPECT_FALSE(setCompanionBluetoothStealth(prefs, true)); + EXPECT_EQ(mesh::companion::BLUETOOTH_STEALTH_PAIRED, + prefs.bluetooth_stealth_mode); + EXPECT_EQ(0, memcmp(address, prefs.bluetooth_stealth_peer, sizeof(address))); + + EXPECT_TRUE(setCompanionBluetoothStealth(prefs, false)); + EXPECT_EQ(mesh::companion::BLUETOOTH_STEALTH_OFF, prefs.bluetooth_stealth_mode); + EXPECT_EQ(mode, prefs.bluetooth_mac_mode); + EXPECT_EQ(0, memcmp(address, prefs.bluetooth_mac, sizeof(address))); + EXPECT_EQ(mesh::companion::BLUETOOTH_PEER_ADDRESS_NONE, + prefs.bluetooth_stealth_peer_type); + const uint8_t empty[mesh::companion::BLUETOOTH_MAC_BYTES] = {}; + EXPECT_EQ(0, memcmp(empty, prefs.bluetooth_stealth_peer, sizeof(empty))); + EXPECT_FALSE(setCompanionBluetoothStealth(prefs, false)); + } +} + +TEST(CompanionNodePrefs, AddressChangeReopensPairingWithoutDisablingStealth) { + CompanionNodePrefs prefs; + prefs.bluetooth_mac_mode = mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED; + prefs.bluetooth_stealth_mode = mesh::companion::BLUETOOTH_STEALTH_PAIRED; + prefs.bluetooth_stealth_peer_type = mesh::companion::BLUETOOTH_PEER_ADDRESS_PUBLIC; + memset(prefs.bluetooth_stealth_peer, 0x12, sizeof(prefs.bluetooth_stealth_peer)); + clearCompanionBluetoothStealthPeer(prefs); + EXPECT_EQ(mesh::companion::BLUETOOTH_STEALTH_PAIRING, + prefs.bluetooth_stealth_mode); + EXPECT_EQ(mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED, + prefs.bluetooth_mac_mode); + EXPECT_EQ(mesh::companion::BLUETOOTH_PEER_ADDRESS_NONE, + prefs.bluetooth_stealth_peer_type); + + prefs.bluetooth_stealth_mode = mesh::companion::BLUETOOTH_STEALTH_OFF; + clearCompanionBluetoothStealthPeer(prefs); + EXPECT_EQ(mesh::companion::BLUETOOTH_STEALTH_OFF, prefs.bluetooth_stealth_mode); +} + +TEST(CompanionNodePrefs, ArmingRotationDoesNotChangeSessionPolicy) { + EXPECT_TRUE(mesh::companion::bluetoothMacPoliciesMatch( + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT, + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED)); + EXPECT_TRUE(mesh::companion::bluetoothMacPoliciesMatch( + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT_ARMED, + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT)); + EXPECT_FALSE(mesh::companion::bluetoothMacPoliciesMatch( + mesh::companion::BLUETOOTH_MAC_RANDOM_EVERY_BOOT, + mesh::companion::BLUETOOTH_MAC_RANDOM_AFTER_CONNECT)); +} + TEST(CompanionNodePrefs, MigratesRegressedPowerSavingDefaultOnce) { CompanionNodePrefs prefs = {}; prefs.powersaving_enabled = 0; diff --git a/test/test_companion_settings_persistence_contract.py b/test/test_companion_settings_persistence_contract.py index 44ccf927..7ff8d25e 100644 --- a/test/test_companion_settings_persistence_contract.py +++ b/test/test_companion_settings_persistence_contract.py @@ -115,8 +115,18 @@ class CompanionSettingsPersistenceContractTests(unittest.TestCase): cad_at = self.prefs.index("uint16_t cad_max_duration_ms") mode_at = self.prefs.index("uint8_t bluetooth_mac_mode", cad_at) address_at = self.prefs.index("uint8_t bluetooth_mac[", mode_at) + peer_type_at = self.prefs.index( + "uint8_t bluetooth_stealth_peer_type", address_at + ) + peer_at = self.prefs.index( + "uint8_t bluetooth_stealth_peer[", peer_type_at + ) + stealth_at = self.prefs.index("uint8_t bluetooth_stealth_mode", peer_at) self.assertLess(cad_at, mode_at) self.assertLess(mode_at, address_at) + self.assertLess(address_at, peer_type_at) + self.assertLess(peer_type_at, peer_at) + self.assertLess(peer_at, stealth_at) load = function_body( self.store, @@ -130,7 +140,22 @@ class CompanionSettingsPersistenceContractTests(unittest.TestCase): read_address_at = load.index( "readOptionalField(loaded_prefs.bluetooth_mac", read_mode_at ) + read_peer_type_at = load.index( + "readOptionalField(&loaded_prefs.bluetooth_stealth_peer_type", + read_address_at, + ) + read_peer_at = load.index( + "readOptionalField(loaded_prefs.bluetooth_stealth_peer", + read_peer_type_at, + ) + read_stealth_at = load.index( + "readOptionalField(&loaded_prefs.bluetooth_stealth_mode", read_peer_at + ) + self.assertIn("sizeof(loaded_prefs.bluetooth_stealth_mode)", load) self.assertLess(read_mode_at, read_address_at) + self.assertLess(read_address_at, read_peer_type_at) + self.assertLess(read_peer_type_at, read_peer_at) + self.assertLess(read_peer_at, read_stealth_at) save = function_body( self.store, @@ -140,7 +165,17 @@ class CompanionSettingsPersistenceContractTests(unittest.TestCase): write_address_at = save.index( "(uint8_t *)_prefs.bluetooth_mac,", write_mode_at ) + write_peer_type_at = save.index( + "&_prefs.bluetooth_stealth_peer_type", write_address_at + ) + write_peer_at = save.index( + "(uint8_t *)_prefs.bluetooth_stealth_peer,", write_peer_type_at + ) + write_stealth_at = save.index("&_prefs.bluetooth_stealth_mode", write_peer_at) self.assertLess(write_mode_at, write_address_at) + self.assertLess(write_address_at, write_peer_type_at) + self.assertLess(write_peer_type_at, write_peer_at) + self.assertLess(write_peer_at, write_stealth_at) def test_channel_source_discovery_and_open_failures_latch_quarantine(self): load = function_body(self.store, "void DataStore::loadChannels(") diff --git a/test/test_webconfig_keys/test_webconfig_keys.cpp b/test/test_webconfig_keys/test_webconfig_keys.cpp index f7ed67f0..44f11ab0 100644 --- a/test/test_webconfig_keys/test_webconfig_keys.cpp +++ b/test/test_webconfig_keys/test_webconfig_keys.cpp @@ -10,6 +10,7 @@ TEST(WebConfigKeys, AllowsKnownScalarKeys) { EXPECT_TRUE(wcIsAllowedSetKey("name")); EXPECT_TRUE(wcIsAllowedSetKey("bluetooth.name")); EXPECT_TRUE(wcIsAllowedSetKey("bluetooth.mac")); + EXPECT_TRUE(wcIsAllowedSetKey("bluetooth.stealth")); EXPECT_TRUE(wcIsAllowedSetKey("radio")); EXPECT_TRUE(wcIsAllowedSetKey("radio.rxps")); EXPECT_TRUE(wcIsAllowedSetKey("powersaving")); @@ -36,6 +37,7 @@ TEST(WebConfigKeys, RejectsDangerousOrUnknownKeys) { EXPECT_FALSE(wcIsAllowedSetKey("password")); EXPECT_FALSE(wcIsAllowedSetKey("reboot")); EXPECT_FALSE(wcIsAllowedSetKey("bogus")); + EXPECT_FALSE(wcIsAllowedSetKey("bluetooth.stealth.extra")); EXPECT_FALSE(wcIsAllowedSetKey("mqtt1.bogus")); // unknown slot field EXPECT_FALSE(wcIsAllowedSetKey("")); } @@ -72,6 +74,8 @@ TEST(WebConfigKeys, IsCaseSensitive) { TEST(WebConfigKeys, AddressChangingKeysAlwaysRequireAReboot) { EXPECT_TRUE(wcSetKeyRequiresReboot("espnow.channel")); EXPECT_TRUE(wcSetKeyRequiresReboot("bluetooth.mac")); + EXPECT_TRUE(wcSetKeyRequiresReboot("bluetooth.stealth")); + EXPECT_FALSE(wcSetKeyRequiresReboot("bluetooth.stealth.extra")); EXPECT_FALSE(wcSetKeyRequiresReboot(NULL)); EXPECT_FALSE(wcSetKeyRequiresReboot("espnow.channel.extra")); EXPECT_FALSE(wcSetKeyRequiresReboot("ESPNOW.channel")); diff --git a/test/test_webconfig_ui.py b/test/test_webconfig_ui.py index 147983ff..c6e7edac 100644 --- a/test/test_webconfig_ui.py +++ b/test/test_webconfig_ui.py @@ -194,9 +194,22 @@ class WebConfigUiTest(unittest.TestCase): self.assertIn('data-k="bluetooth.mac"', page) self.assertIn('case"bluetooth.mac":return r.bluetooth_mac||"";', page) self.assertIn("random-every-boot", page) + self.assertIn("random-after-connect", page) + self.assertNotIn("random-after-connect, or stealth", page) self.assertIn('("bluetooth.mac" in setmap)', page) self.assertIn("Bluetooth address saved [OK] - rebooting", page) + def test_stealth_flag_has_independent_control_and_reboot_flow(self): + page = SOURCE.read_text(encoding="utf-8") + self.assertIn('data-cap="131072">', page) + self.assertIn('data-k="bluetooth.stealth"', page) + self.assertIn('case"bluetooth.stealth":return r.bluetooth_stealth?"on":"off";', page) + self.assertIn('("bluetooth.stealth" in setmap)', page) + self.assertIn('("bluetooth.stealth" in st.dirty)', page) + self.assertIn('("bluetooth.stealth" in submitted)', page) + self.assertIn("Bluetooth stealth saved [OK] - rebooting", page) + self.assertNotIn("|stealth|", page) + def test_scan_panel_exposes_automatic_updates_accessibly(self): page = SOURCE.read_text(encoding="utf-8") self.assertIn('id="wz-scan-btn"', page) diff --git a/test/test_webconfig_ui_runtime.py b/test/test_webconfig_ui_runtime.py index ea495ff2..108fd8ad 100644 --- a/test/test_webconfig_ui_runtime.py +++ b/test/test_webconfig_ui_runtime.py @@ -347,6 +347,55 @@ class WebConfigUiRuntimeTest(unittest.TestCase): self.assertIn('data-test-dirty-name="Early App Edit"', dom) self.assertIn('data-test-capture="clear"', dom) + def test_bluetooth_stealth_toggle_preserves_custom_mac(self): + status, config = self.setup_values() + status["mode"] = "lan" + status["capabilities"] = (1 << 16) | (1 << 17) + config["radio"]["bluetooth_mac"] = "C2:11:22:33:44:55" + config["radio"]["bluetooth_stealth"] = False + prelude = """ + +""" % (json.dumps(status), json.dumps(config)) + + dom = self.run_page(prelude) + self.assertIn('data-test-initial-flag="off"', dom) + self.assertIn('data-test-dirty-flag="on"', dom) + self.assertIn('data-test-dirty-keys="bluetooth.stealth"', dom) + self.assertIn('data-test-mac="C2:11:22:33:44:55"', dom) + self.assertIn('data-test-config-mac="C2:11:22:33:44:55"', dom) + self.assertIn('data-test-restored-dirty-count="0"', dom) + def test_second_load_auto_password_clear_remains_restorable(self): status, config = self.setup_values() prelude = """ diff --git a/webui/index.html b/webui/index.html index 598b1ca2..2b4fa8a5 100644 --- a/webui/index.html +++ b/webui/index.html @@ -361,7 +361,10 @@ body.tab-cli{padding-bottom:0}
Optional complete Bluetooth device name. Leave blank to follow the node name.
-
Use C2:11:22:33:44:55, random, or random-every-boot. Clear to restore the factory address. Reboot and re-pair after a change.
+
Use C2:11:22:33:44:55, random, random-every-boot, or random-after-connect. Clear restores the factory address. This does not change the stealth flag.
+
+ +
Independent of the address setting. Advertise normally until first pairing, then accept only that bonded peer. An address rotation reopens pairing. Changes require a reboot.
@@ -780,6 +783,7 @@ function cfgVal(k){ // map a `set` key to its current value string, from st.cfg switch(k){ case"name":return r.name;case"bluetooth.name":return r.bluetooth_name||""; case"bluetooth.mac":return r.bluetooth_mac||""; + case"bluetooth.stealth":return r.bluetooth_stealth?"on":"off"; case"lat":return String(r.lat);case"lon":return String(r.lon); case"tx":return String(r.tx);case"af":return String(r.af); case"rxdelay":return String(r.rxdelay);case"txdelay":return String(r.txdelay); @@ -1181,7 +1185,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))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))body.reboot=true; if(Object.keys(setmap).length===0&&!body.reboot){toast("Nothing to save");return} var reqid=mkReqId();body.reqid=reqid; $("#save-btn").disabled=true; @@ -1217,7 +1221,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); + 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 pwdErr=adminPwdError(rebootChanged); if(pwdErr){ $('#tabs button[data-t="radio"]').click(); @@ -1260,12 +1264,15 @@ function pollResult(cb,errs,idles,acked,reqid,submitted){ else if(r.reboot){ st.dirty={}; var bluetoothAddressChanged=submitted&&("bluetooth.mac" in submitted); + var bluetoothStealthChanged=submitted&&("bluetooth.stealth" 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." : "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":"Settings saved [OK] - rebooting",r.wifi_ip,rebootSeconds(r)); + false,bluetoothAddressChanged?"Bluetooth address saved [OK] - rebooting":bluetoothStealthChanged?"Bluetooth stealth saved [OK] - rebooting":"Settings saved [OK] - rebooting",r.wifi_ip,rebootSeconds(r)); return; }else toast("Saved [OK]"); loadConfigSoft(); @@ -1822,7 +1829,9 @@ var CLI_VERBS=[ ["powersaving on","Enable power saving"], ["powersaving off","Disable power saving"], ["get bluetooth.mac","Show the Bluetooth address mode"], - ["set bluetooth.mac ","Set address {C2:11:22:33:44:55|random|random everyboot|default}"], + ["set bluetooth.mac ","Set address {address|random|random-every-boot|random-after-connect|default}"], + ["get bluetooth.stealth","Show the independent Bluetooth stealth flag"], + ["set bluetooth.stealth ","Set stealth {on|off}, keeping the address policy"], ["password ","Change the admin password {new-password}"], ["alert test","Send a test alert on the configured channel"], ["ota check","Check for a newer build (does not flash)"],